Android Spinner получает значение выбранного элемента? - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть настройка Spinner с макетом ниже, и я хотел получить значение выбранного элемента, а не отображаемый текст. Где вытащить значение? Также будет ли это работать для извлечения значений макета ниже? Или мне нужен какой-то другой способ установки (value, displayText) пары? Итак, я думаю, мне нужно знать, как настроить его, чтобы он имел значение, а также как в onItemSelected я бы получить значение?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:paddingLeft="12dip"> 
<Spinner
android:id="@+id/viewSpin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"   
android:entries="@array/some_values" 
android:prompt="@array/some_names"/>
</LinearLayout>

Ответы [ 2 ]

1 голос
/ 03 августа 2012

Надеюсь, это поможет вам.

Попробуйте этот код ..

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        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);
        final Spinner sp3= (Spinner) findViewById(R.id.spinner3);

        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_list_item_1,str);
        adp2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp2.setAdapter(adp2);
        sp2.setSelection(adp2.getPosition("Report 3"));

        ArrayAdapter<CharSequence> adp3=ArrayAdapter.createFromResource(this, 
                R.array.str2, android.R.layout.simple_spinner_item);

        adp3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp3.setAdapter(adp3);


        sp1.setOnItemSelectedListener(new OnItemSelectedListener()
        {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                // TODO Auto-generated method stub
                int pos1=position;
                String str1=sp1.getSelectedItem().toString();
                //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 arg2, long id) {
                // TODO Auto-generated method stub
                int selected_item_position = arg2;
                String selected_item=sp2.getSelectedItem().toString();

                Toast.makeText(getBaseContext(), ""+selected_item_position, Toast.LENGTH_SHORT).show();
                Toast.makeText(getBaseContext(), selected_item, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }

        });


        sp3.setOnItemSelectedListener(new OnItemSelectedListener()
        {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                // TODO Auto-generated method stub
                int pos1=position;
                String str1=sp1.getSelectedItem().toString();               




            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }

        });




    }
1 голос
/ 26 февраля 2011

Вы разрешаете экземпляр Spinner в своем классе активности с помощью findViewById и устанавливаете OnItemSelectedListener на нем. Поскольку вы заполняете Spinner каким-либо адаптером, используйте элементы, из которых вы сконструировали Adapter, и положение выбранного элемента, как сообщается в третьем параметре метода OnItemSelectedListener OnItemSelectedListener

http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html#onItemSelected%28android.widget.AdapterView%3C?%3E,%20android.view.View,%20int,%20long%29

...