কীভাবে কোনও স্পিনারে আইটেম যুক্ত করবেন?
কীভাবে কোনও স্পিনারে আইটেম যুক্ত করবেন?
উত্তর:
এক্সএমএল ফাইল:
<Spinner
android:id="@+id/Spinner01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
জাভা ফাইল:
public class SpinnerExample extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] arraySpinner = new String[] {
"1", "2", "3", "4", "5", "6", "7"
};
Spinner s = (Spinner) findViewById(R.id.Spinner01);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, arraySpinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
}
}
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
( s.setAdapter(adapter);
ড্রপডাউনটি আরও ভাল দেখানোর আগে
আমি অন্য একটি বিকল্প খুঁজে পেয়েছি: লেআউট ফাইলে স্পিনার সংজ্ঞা
<Spinner android:id="@+id/spinner"
android:layout_width="fill_parent"
android:drawSelectorOnTop="true"
android:prompt="@string/spin"
android:entries="@array/spinnerItems"
/>
অ্যারে.এক্সএমএল ফাইলটিতে আইটেম সংজ্ঞা:
<resources>
<string-array name="spinnerItems">
<item>item1</item>
<item>item2</item>
<item>item3</item>
<item>item4</item>
</string-array>
</resources>
এই কোড ব্যবহার করে দেখুন:
final List<String> list = new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
final String[] str = {"Report 1", "Report 2", "Report 3", "Report 4", "Report 5"};
final Spinner sp1 = (Spinner) findViewById(R.id.spinner1);
final Spinner sp2 = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<String> adp1 = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, list);
adp1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp1.setAdapter(adp1);
ArrayAdapter<String> adp2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, str);
adp2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp2.setAdapter(adp2);
sp1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), list.get(position), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
sp2.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), str[position], Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
আপনি স্ট্রিং অ্যারে এক্সএমএল ফাইলের মাধ্যমে স্পিনার আইটেমের মান যুক্ত করতে পারেন ..
<resources>
<string name="app_name">Spinner_ex5</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string-array name="str2">
<item>Data 1</item>
<item>Data 2</item>
<item>Data 3</item>
<item>Data 4</item>
<item>Data 5</item>
</string-array>
</resources>
মূলঅ্যাক্টিভিটি.জভাতে:
final Spinner sp3 = (Spinner) findViewById(R.id.spinner3);
ArrayAdapter<CharSequence> adp3 = ArrayAdapter.createFromResource(this,
R.array.str2, android.R.layout.simple_list_item_1);
adp3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp3.setAdapter(adp3);
sp3.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
// TODO Auto-generated method stub
String ss = sp3.getSelectedItem().toString();
Toast.makeText(getBaseContext(), ss, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
স্পিনারে আইটেম যুক্ত করার জন্য, আপনি একটি কাজ করতে পারেন, একটি অ্যাডাপ্টার তৈরি করার চেষ্টা করতে পারেন এবং তারপরে অ্যাডাপ্টারে আইটেমগুলি যুক্ত / সরিয়ে ফেলতে পারেন, তারপরে আপনি setAdapter()
পদ্ধতিটি ব্যবহার করে সহজেই সেই অ্যাডাপ্টারকে স্পিনারের সাথে আবদ্ধ করতে পারেন ।
এখানে একটি উদাহরণ:
spinner.setAdapter(adapter);
adapter.add(item1);
adapter.add(item2);
adapter.add(item3);
adapter.add(item4);
adapter.add(item5);
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);
<string-array name="array_name">
<item>Array Item One</item>
<item>Array Item Two</item>
<item>Array Item Three</item>
</string-array>
আপনার লেআউটে:
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/array_name"
/>
এই কোডটি মূলত একটি JSON অ্যারে অবজেক্টটি পড়বে এবং প্রতিটি সারিটিকে প্যারামিটার হিসাবে পাস করা স্পিনারের একটি বিকল্পে রূপান্তরিত করে:
public ArrayAdapter<String> getArrayAdapterFromArrayListForSpinner(ArrayList<JSONObject> aArrayList, String aField)
{
ArrayAdapter<String> aArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item);
aArrayAdapter.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item); //android.R.layout.simple_spinner_dropdown_item
try {
for (int i = 0; i < aArrayList.size(); i++)
{
aArrayAdapter.add(aArrayList.get(i).getString(aField));
}
} catch (JSONException e) {
e.printStackTrace();
ShowMessage("Error while reading the JSON list");
}
return aArrayAdapter;
}
এক্সএমএল লেআউটে কোনও স্পিনার যুক্ত করুন এবং তারপরে জাভা ফাইলে এই কোডটি যুক্ত করুন:
Spinner spinner;
spinner = (Spinner) findViewById(R.id.spinner1) ;
java.util.ArrayList<String> strings = new java.util.ArrayList<>();
strings.add("Mobile") ;
strings.add("Home");
strings.add("Work");
SpinnerAdapter spinnerAdapter = new SpinnerAdapter(AddMember.this, R.layout.support_simple_spinner_dropdown_item, strings);
spinner.setAdapter(spinnerAdapter);
তালিকা আপডেট করার পরে এই কোডটি যুক্ত করুন
ধরুন:
অ্যারেএডাপ্টার <স্ট্রিং> ভেরিয়েবলের নাম ডেটাএডাপ্টার এবং তালিকার ভেরিয়েবলের নাম কী ।
যোগ করার জন্য এক টি আইটেম থেকে স্পিনার আপনি করতে পারেন:
ArrayAdapter myAdapter =
((ArrayAdapter) mySpinner.getAdapter());
myAdapter.add(myValue);
myAdapter.notifyDataSetChanged();
এটি কেবল অ্যাডাপ্টার সাফ করার জন্য, সমস্ত আইটেন যুক্ত করতে এবং নীচের মত পরিবর্তনটি অবহিত করতে হবে:
public void show(List<Object> objLIst) {
adapter.clear();
adapter.addAll(objLIst);
adapter.notifyDataSetChanged(); }
একটি সহজ উপায় উপাদান স্পিনার লাইব্রেরি ব্যবহার করা হয়: https://github.com/jaredrummler/MaterialSpinner
প্রথমে আপনার প্রকল্পে যুক্ত করুন:
compile 'com.jaredrummler:material-spinner:1.2.4'
এবং এটির মতো ব্যবহার করুন:
<com.jaredrummler.materialspinner.MaterialSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
এবং জাভা কোড যাতে আপনি জাভাতে এত সহজে আইটেম যুক্ত করতে পারেন:
MaterialSpinner spinner = (MaterialSpinner) findViewById(R.id.spinner);
spinner.setItems("item 1", "item 2", "item 3", "item 4", "item 5");
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
}
});