Spinner View - 11 ( Android Bangla Tutorial)
স্পিনার ভিউ হল এমন এক ধরনের ভিউ যেখানে ওই ভিউ উপাদানটির ভিতর আরো অনেক ভিউ এর একটি লিস্ট থাকবে এবং সেখান থেকে কোন এক ভিউ সিলেক্ট করে আমরা নিজেদের মত কাজ করতে পারবো ।
In Xml -
<TextView
// টেক্সভিউ দ্বারা স্পিনার ভিউ তে আমরা কি দেখাবো তার নির্দেশনা দিয়ে দিলাম
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
</android.support.v7.widget.AppCompatSpinner>
// এখানে আমরা layout_width ="0dp" দিয়ে layout_weight="1" নিয়েছি যেহেতু এটার রুট অরিয়েন্টেশন হরিজোন্টালি আর 0dp এর বদলে যদি আমরা wrap_content ব্যাবহার করতাম তাহলে স্পিনার ভিউ তার স্বভাব অনুযায়ী পুরো স্ক্রিনের উইথ টুকু নিয়ে নিত ।
In Strings.xml -
আমরা যে লিস্ট দেখাবো সেটি স্ট্রিং অ্যারে বিধায় ইস্ট্রিং এক্সএমএল এ তা ডিক্লার করে নিলাম <string-array name="country_names">
<item>Bangladesh</item>
<item>India</item>
<item>Pakistan</item>
<item>Srilanka</item>
</string-array>
In Java class -
public class MainActivity extends AppCompatActivity{
AppCompatSpinner spinner;
ArrayAdapter<CharSequence> adapter;
// ভিউ এবং ডাটার ভিতর সংযোগ স্থাপনের জন্য এডাপ্টর ব্যাবহার করা হয় । ডাটার সেট অ্যারে আকারে বিধায় আমরা ArrayAdapter এর অবজেক্ট তৈরি করলাম
@Override
protected void Oncreate(Bundle savedInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
spinner = (AppCompatSpinner) findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this, R.array.country_names,
android.R.layout.simple_spinner_item);
// এখানে createFromResource ম্যাথড দ্বারা আমরা প্রথমে আমাদের লিস্ট কোথায় দেখাবে তারপর প্রোজেক্ট এর ভিতর লিস্টের অবস্থান এবং এরপর প্রতিটি লিস্ট এর ভিউ গুলো কি রকম হবে তা নির্ধারণ করে দিলাম । অ্যান্ড্রোয়েড এ বাই ডিফল্ট কিছু লেআউট তৈরি করা থাকে সেখান থেকেই আমরা simple_spinner_item লেআউট টি ব্যাবহার করেছি ।
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
// setDropDownViewResource ম্যাথড দ্বারা আমাদের ফুল লিস্ট আইটেম টা কি রকম ভাবে দেখাবে তা নির্ধারণ করা হয় । উপরের ম্যাথড টা ছিল লিস্টের ভিতর প্রতিটি আইটেম এর লেআউট কি রকম হবে আর এটি ফুল লিস্ট আইটেম এর লেআউট কেমন হবে তা ।
spinner.setAdapter(adapter);
// আমরা আমাদের ডাটা নিয়ে আসলাম , ডাটা কিভাবে দেখাবে তা নির্ধারণ করলাম এরপর এডাপ্টর দিয়ে আমাদের স্পিনার ভিউ এর সাথে যোগ করে দিলাম ।
// এখন ইউজার যখন কোন ডাটা সিলেক্ট করবে তখন সেই ডাটা দিয়ে আপনি কি করবেন তার কোডগুলোই নিচের ম্যাথডগুলোর মাধ্যমে তৈরি করে দিবেন । এখানে আমরা টোস্ট এর সাহায্যে ইউজার যে আইটেম টি সিলেক্ট করবে তা দেখানো হয়েছে ।
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected( AdapterView<?> parent, View view, int position,
long id ) {
Toast.makeText(MainActivity.this, parent.getItemAtPosition(position)+
" is selected", Toast.LENGTH_SHORT ).show();
}
@Override
public void onNothingSelected( AdapterView<?> parent ) {
}
}) ;
}
In Xml -
<TextView
android:id="@+id/country"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select your Country :"
android:textSize="20sp" />android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select your Country :"
// টেক্সভিউ দ্বারা স্পিনার ভিউ তে আমরা কি দেখাবো তার নির্দেশনা দিয়ে দিলাম
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
</android.support.v7.widget.AppCompatSpinner>
// এখানে আমরা layout_width ="0dp" দিয়ে layout_weight="1" নিয়েছি যেহেতু এটার রুট অরিয়েন্টেশন হরিজোন্টালি আর 0dp এর বদলে যদি আমরা wrap_content ব্যাবহার করতাম তাহলে স্পিনার ভিউ তার স্বভাব অনুযায়ী পুরো স্ক্রিনের উইথ টুকু নিয়ে নিত ।
In Strings.xml -
আমরা যে লিস্ট দেখাবো সেটি স্ট্রিং অ্যারে বিধায় ইস্ট্রিং এক্সএমএল এ তা ডিক্লার করে নিলাম <string-array name="country_names">
<item>Bangladesh</item>
<item>India</item>
<item>Pakistan</item>
<item>Srilanka</item>
</string-array>
In Java class -
public class MainActivity extends AppCompatActivity{
AppCompatSpinner spinner;
ArrayAdapter<CharSequence> adapter;
// ভিউ এবং ডাটার ভিতর সংযোগ স্থাপনের জন্য এডাপ্টর ব্যাবহার করা হয় । ডাটার সেট অ্যারে আকারে বিধায় আমরা ArrayAdapter এর অবজেক্ট তৈরি করলাম
@Override
protected void Oncreate(Bundle savedInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
spinner = (AppCompatSpinner) findViewById(R.id.spinner);
adapter = ArrayAdapter.createFromResource(this, R.array.country_names,
android.R.layout.simple_spinner_item);
// এখানে createFromResource ম্যাথড দ্বারা আমরা প্রথমে আমাদের লিস্ট কোথায় দেখাবে তারপর প্রোজেক্ট এর ভিতর লিস্টের অবস্থান এবং এরপর প্রতিটি লিস্ট এর ভিউ গুলো কি রকম হবে তা নির্ধারণ করে দিলাম । অ্যান্ড্রোয়েড এ বাই ডিফল্ট কিছু লেআউট তৈরি করা থাকে সেখান থেকেই আমরা simple_spinner_item লেআউট টি ব্যাবহার করেছি ।
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
// setDropDownViewResource ম্যাথড দ্বারা আমাদের ফুল লিস্ট আইটেম টা কি রকম ভাবে দেখাবে তা নির্ধারণ করা হয় । উপরের ম্যাথড টা ছিল লিস্টের ভিতর প্রতিটি আইটেম এর লেআউট কি রকম হবে আর এটি ফুল লিস্ট আইটেম এর লেআউট কেমন হবে তা ।
spinner.setAdapter(adapter);
// আমরা আমাদের ডাটা নিয়ে আসলাম , ডাটা কিভাবে দেখাবে তা নির্ধারণ করলাম এরপর এডাপ্টর দিয়ে আমাদের স্পিনার ভিউ এর সাথে যোগ করে দিলাম ।
// এখন ইউজার যখন কোন ডাটা সিলেক্ট করবে তখন সেই ডাটা দিয়ে আপনি কি করবেন তার কোডগুলোই নিচের ম্যাথডগুলোর মাধ্যমে তৈরি করে দিবেন । এখানে আমরা টোস্ট এর সাহায্যে ইউজার যে আইটেম টি সিলেক্ট করবে তা দেখানো হয়েছে ।
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected( AdapterView<?> parent, View view, int position,
long id ) {
Toast.makeText(MainActivity.this, parent.getItemAtPosition(position)+
" is selected", Toast.LENGTH_SHORT ).show();
}
@Override
public void onNothingSelected( AdapterView<?> parent ) {
}
}) ;
}
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন