অ্যান্ড্রয়েড ইন্টারমিডিয়েট টিউটোরিয়াল ৬ঃ onClickListener ( অনক্লিক লিসেনার ) নিয়ে খেলাধুলা

সালাম ও ভালোবাসা।

আর্টিকেলের নাম দেখে কেমন জানি লাগে! খেলাধুলা? ইয়েস। কোড নিয়ে খেলা ধুলা করতে করতে হবেন আপনি বড় খেলোয়ার। বানিয়ে ফেলবেন কালজয়ী কিছু। তখন আন্ড্রয়েড লাইমকে ক্রেডিট দিতে ভুলবেন না 😛

যাক, প্যাক প্যাক না করে শুরু করি। আগের পর্ব না পড়লে পড়ুন এখানে

আজকে আমরা শিখবো onClickListener ( অনক্লিক লিসেনার )। মানে আপনার অ্যাপ্লিকেশনে ইউজার এর ক্লিক/টাচ কিভাবে কিভাবে নিবেন? নেয়ার পরে সেখানে যে কোড লিখবেন, ক্লিক করলে সেই অনুসারেই কাজ করবে।

বেশ কয়েকটা পদ্ধতি আছে। আমরা দেখবো তিনটা। যেকোন একটা ব্যবহার করতে পারেন আপনার প্রজেক্টে।

 

আমরা এমন একটা প্রজেক্ট বানাবো আজকে

আমরা এমন একটা প্রজেক্ট বানাবো আজকে

 

এই প্রজেক্টের ডেমো ভিডিও দেখে নেই চলুনঃ
 


 

পদ্ধতি ১ঃ
findViewById দিয়ে XML ( এক্সএমএল ) থেকে ধরে নিবো। তারপর সেই অবজেক্টে নিচের মত কাজ করবো,
 

// button for process one
b1 = (Button) findViewById(R.id.button1);
// process one
b1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Clicked on Process ONE button", Toast.LENGTH_LONG).show();

}
});

 

পদ্ধতি ২ঃ OnClickListener ইনহ্যারিট করে

১/ প্রথমে ক্লাস ফাইলে OnClickListener কে implement করে নিতে হবে।

২/ তারপর XML ( এক্সএমএল ) থেকে findViewById দিয়ে ধরে নিচের কাজটুকু করতে হবে,

// button for process two
b2 = (Button) findViewById(R.id.button2);
b2.setOnClickListener(this);

 

৩/ implement  করার কারনে onClick মেথড অটো চলে আসবে। if..else দিয়ে এখানে চেক করা হচ্ছে কোন বাটনে ক্লিক হচ্ছে। অনেক বাটন থাকলে আপনি এটা Switch ইউজ করেও করতে পারেন।

public void onClick(View v) {
// TODO Auto-generated method stub

if( v.getId() == R.id.button2 ) {

Toast.makeText(getApplicationContext(), "Clicked on Process two button", Toast.LENGTH_LONG).show();
}
}

 

 

পদ্ধতি ৩ঃ onClick এক্সএমএল ( XML ) অ্যাট্রিবিউট ব্যবহার করে

যেই বাটনে করতে চান, সেই বাটনে onClick এ যে নাম দিবেন জাভায় সেই নামে একটা মেথড লিখবেন। ব্যস কাজ করে ফেলবে।

নীল মার্ক করা দাগের মত লিখুন

নীল মার্ক করা দাগের মত লিখুন

জাভা কোড ( শুধু একটা মেথড আর কিছুনা ) নিচে দিলাম।

 



	// process three
	
	public void prothree(View v) {
		Toast.makeText(getApplicationContext(), "This is process THREE", Toast.LENGTH_LONG).show();

		
	}

 

আশা করি বুঝেছেন। না বুঝলে কমেন্ট করুন, বুঝিয়ে দিবো।

 

 

এবার প্রজেক্ট শুরু করা যায়ঃ

নিচের ছবির মত প্রজেক্টের নাম দিন এবং ক্রিয়েট করুন,

প্রজেক্টের নাম ও প্যাকেজ নাম দিন সেইম

প্রজেক্টের নাম ও প্যাকেজ নাম দিন সেইম

 

এখন, MainActivity.java তে নিচের কোড পেস্ট করুনঃ

package com.androidlime.onclicktest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

	Button b1, b2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activitymain);

		// button for process one
		b1 = (Button) findViewById(R.id.button1);
		// process one
		b1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Toast.makeText(getApplicationContext(),
						"Clicked on Process ONE button", Toast.LENGTH_LONG)
						.show();

			}
		});

		// button for process two
		b2 = (Button) findViewById(R.id.button2);
		b2.setOnClickListener(this);

	}

	// process two
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub

		if (v.getId() == R.id.button2) {

			Toast.makeText(getApplicationContext(),
					"Clicked on Process two button", Toast.LENGTH_LONG).show();
		}
	}

	// process three

	public void prothree(View v) {
		Toast.makeText(getApplicationContext(), "This is process THREE",
				Toast.LENGTH_LONG).show();

	}

}

 

তারপর activity_main.xml এ নিচের কোড পেস্ট করুনঃ


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00aee5"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.androidlime.onclicktest.MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="93dp"
        android:layout_marginTop="70dp"
        android:text="Process One" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="30dp"
        android:text="Process Two" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button2"
        android:layout_centerVertical="true"
        android:onClick="prothree"
        android:text="Process Three" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#2b3c50"
        android:gravity="bottom"
        android:padding="10dp"
        android:text="OnlickListener Practice"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#fff" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="20dp"
        android:background="#2b3c50"
        android:gravity="center"
        android:padding="10dp"
        android:text="AndroidLime.com"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#fff" />

</RelativeLayout>

 

তারপর প্রজেক্ট রান করুন। আশা করি সবগুলা ঠিক ভাবে কাজ করছে। না করলে জানাবেন।

 

ভালো থাকুন, সুস্থ থাকুন। হ্যাপি কোডিং।

Mosharrof Rubel

আমাকে ফেসবুকে পাবেন এখানেঃ মোশাররফ রুবেল

You may also like...

Leave a Reply