2014-12-07 3 views
0

Итак, я посмотрел в spinner api, но он говорит, что дескриптор события с использованием AdapterView, но я никогда не создавал адаптированный. Я создал массив в string.xml, а затем я получил с помощью Android: entries = @ array/arraynameИзвлечение того, какой объект был выбран в прядильщике

Итак, как я могу получить то, что пользователь выбрал на счетчике без создания адаптера? Или я смотрю на это неправильно?

ответ

0

Что Google означает, реализуя AdapterView является то, что вы должны реализовать свой интерфейс OnItemSelectedListener на вашей деятельности, таких как:

public class SpinnerActivity extends Activity implements AdapterView.OnItemSelectedListener { 
    ... 

    public void onItemSelected(AdapterView<?> parent, View view, 
      int pos, long id) { 
     // An item was selected. You can retrieve the selected item using 
     // parent.getItemAtPosition(pos) 
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
     // Another interface callback 
    } 
} 

и вы должны установить слушателя событий для этой блесны, как:

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
spinner.setOnItemSelectedListener(this); 

Вот полный пример:

MainActivity

public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener { 

    //Spinner 
    private Spinner spinner; 
    //The array that will store the spinner items 
    private ArrayList<String> list; 

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

     //Create the spinner and add its listener 
     spinner = (Spinner)findViewById(R.id.spinner); 
     spinner.setOnItemSelectedListener(this); 

     //Spinner items, stored as a String array 
     list = new ArrayList<>(); 
     list.add("Item 1"); 
     list.add("Item 2"); 
     list.add("Item 3"); 
     list.add("Item 4"); 

     //To populate the spinner with a list of choices, you need to specify a SpinnerAdapter in your Activity or Fragment 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list); 
     //Set the adapter to the spinner 
     spinner.setAdapter(adapter); 


    } 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

     //To Get the selected item: 
     //Since the spinner items are stored inside an array 
     //we can get the selected item text such as item.get(position) 
     Toast.makeText(this, list.get(position), Toast.LENGTH_LONG).show(); 
    } 

activity_main XML Layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal"> 

    <Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/spinner" 
     android:background="#CCC" 
     /> 

</LinearLayout> 
+0

как у меня есть строка содержит то, что выбирает пользователя для строки вертушка String = spinner.setOnItemSelectedListener (это); ? – Joe

+0

Попробуйте этот текст строки = spinner.getSelectedItem(). ToString(); –

+0

Spinner - это массив строковых объектов, которые мне все еще нужно преобразовать, потому что прядильщик имеет прядильные объекты или нет? – Joe

Смежные вопросы