অ্যান্ড্রয়েডে কোনও স্পিনারের আইটেমগুলি কীভাবে যুক্ত করবেন?


উত্তর:


144

এক্সএমএল ফাইল:

<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);
    }
}

স্পিনার উদাহরণ দেখুন


7
যদিও এটি তাত্ত্বিকভাবে প্রশ্নের উত্তর দিতে পারে, তবে এখানে উত্তরের প্রয়োজনীয় অংশগুলি অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্ক সরবরাহ করা ভাল।
বিল


অ্যারে_স্পিনার কী? অ্যারের নাম অ্যারেস্পিনার। এটি কি বানান ভুল করে বা এটি কেবল তার মতোই হতে পারে>
সুরজ

1
যোগ করার বিষয়ে বিবেচনা করুন adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);( s.setAdapter(adapter);ড্রপডাউনটি আরও ভাল দেখানোর আগে
নিষেধাজ্ঞাগুলি পরীক্ষা করুন

1
@ স্টেফেনএম লিঙ্কটি পরিবর্তন করেছে
পঙ্কজগরওয়াল

99

আমি অন্য একটি বিকল্প খুঁজে পেয়েছি: লেআউট ফাইলে স্পিনার সংজ্ঞা

<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>

কোডের সম্পূর্ণ উত্সের সাথে লিঙ্ক করুন


আমি উপরের সমস্ত পদ্ধতি এবং কয়েকটি অন্যান্য টিউটোরিয়াল চেষ্টা করেছিলাম, তবে এই আমিই কেবল আমার জন্য কাজ করেছি। তোমাকে অনেক ধন্যবাদ!
snapplex

আপনাকে @ স্নাপ্লেক্সে সহায়তা করতে পেরে আনন্দিত;)
ম্যাক্সিভিস

1
এটি শীর্ষ উত্তর হতে হবে। পরিষ্কার করুন।

30

এই কোড ব্যবহার করে দেখুন:

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
        }
    });

9

স্পিনারে আইটেম যুক্ত করার জন্য, আপনি একটি কাজ করতে পারেন, একটি অ্যাডাপ্টার তৈরি করার চেষ্টা করতে পারেন এবং তারপরে অ্যাডাপ্টারে আইটেমগুলি যুক্ত / সরিয়ে ফেলতে পারেন, তারপরে আপনি setAdapter()পদ্ধতিটি ব্যবহার করে সহজেই সেই অ্যাডাপ্টারকে স্পিনারের সাথে আবদ্ধ করতে পারেন ।

এখানে একটি উদাহরণ:

spinner.setAdapter(adapter);
adapter.add(item1);
adapter.add(item2);
adapter.add(item3);
adapter.add(item4);
adapter.add(item5);
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);

আপনার জবাবের জন্য থ্যাঙ্কস আমি সমাধানও পেয়েছি এখন আমি এটিতে একটি সমস্যার মুখোমুখি আছি।

আমি স্পিনারের নির্বাচিত আইটেমটি আনতে চাই অর্থাৎ এর অবস্থান হিসাবে আমি এটি অন্য পদ্ধতিতে পাস করতে চাই আমি কী করেছি তা দেখতে ... dataspin.setOnItemSelectedListener (new myitemlistener ());

ডেটাস্পিন আমার স্পিনার অবজেক্ট

@ ওভাররাইড সার্বজনীন শূন্যর উপর আইটেমসিলেক্ট (অ্যাডাপ্টারভিউ <?> প্যারেন্ট, ভিউ, ইন পজিশন, লং আইডি) {// টোডো স্বয়ংক্রিয়ভাবে উত্পন্ন পদ্ধতি স্ট্রিং পি = প্যারেন্ট.জেটআইটেমটিজ পজিশন (পজিশন)। স্ট্রিং (); int pos = (int) প্যারেন্ট.জিট আইটেম আইডিএটপজিশন (পজিশন); System.out.println ("স্পিনারের অবস্থান ..." + পজ); setSearchView (POS); }

যদি আমি স্পিনার আইটেমটি প্রদর্শন না করে এটি করি

8
<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"
    />

তবে কীভাবে আপনি নির্বাচিত আইটেমটি পাবেন?
Demotivated

1
জাভা ফাইলে প্রথম টাইপকাস্ট। তারপরে স্পিনার স্পিনার ব্যবহার করুন; স্পিনার = findViewByID (R.id.spinner); স্পিনার.সেটঅনটাইমক্লিকলিস্টনার (নতুন অ্যাডাপ্টারভিউ.অনিমিটক্লিকলিস্টার () {@ ওভাররাইড পাবলিক শূন্য অনআইটেমিক্লিক (অ্যাডাপ্টারভিউ <?> প্যারেন্ট, ভিউ, ইনট পজিশন, লং আইডি) {}});
জিয়া জিয়া আনসারী

5

এই কোডটি মূলত একটি 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;       
}

2

এক্সএমএল লেআউটে কোনও স্পিনার যুক্ত করুন এবং তারপরে জাভা ফাইলে এই কোডটি যুক্ত করুন:

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);

1

তালিকা আপডেট করার পরে এই কোডটি যুক্ত করুন

ধরুন:

অ্যারেএডাপ্টার <স্ট্রিং> ভেরিয়েবলের নাম ডেটাএডাপ্টার এবং তালিকার ভেরিয়েবলের নাম কী

  • dataAdapter.addAll (চাবি);
  • dataAdapter.notifyDataSetChanged ();

1

যোগ করার জন্য এক টি আইটেম থেকে স্পিনার আপনি করতে পারেন:

ArrayAdapter myAdapter = 
  ((ArrayAdapter) mySpinner.getAdapter());

myAdapter.add(myValue);

myAdapter.notifyDataSetChanged();


0

এটি কেবল অ্যাডাপ্টার সাফ করার জন্য, সমস্ত আইটেন যুক্ত করতে এবং নীচের মত পরিবর্তনটি অবহিত করতে হবে:

  public void show(List<Object> objLIst) {
    adapter.clear();
    adapter.addAll(objLIst);
    adapter.notifyDataSetChanged(); }

0

একটি সহজ উপায় উপাদান স্পিনার লাইব্রেরি ব্যবহার করা হয়: 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();
  }
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.