OnItemClickListener счетчика

Я могу получить Spinner в панели действий таким образом; Массив элементов в re / values ​​/ languages.xml

<string-array name="languages"> <item>Finnish</item> <item>French</item> <item>German</item> <item>Slovakian</item> <item>Polish</item> </string-array> 

В res / menu / main.xml

  <item android:id="@+id/menuSort" android:actionLayout="@layout/spinner" android:showAsAction="ifRoom" android:title="@string/choose"/> 

В res / layout / spinner.xml

 <Spinner android:id="@+id/spinner" android:layout_width="150dp" android:layout_height="wrap_content" android:entries="@array/languages"/> 

И, наконец, класс активности;

  public class Base_Activity extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); final Spinner spinner = new Spinner(this); Log.i("DEBUG1", "CHECKPOINT1"); ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>( this, android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(spinnerArrayAdapter); Log.i("DEBUG2", "CHECKPOINT2"); spinnerArrayAdapter.setDropDownViewResource(0); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String items=spinner.getSelectedItem().toString(); Log.i("Selected item : ",items); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); return true; } 

}

То, что я не получаю, это ItemSelected из элементов spinner, ничего не происходит. Как вы можете видеть из моего xml-файла, мне даже не нужен адаптер для получения счетчика. Но я использую адаптер для чего-то, чтобы получить OnItemSelected. Пожалуйста, помогите мне, что здесь произошло?

Попробуйте это может помочь вам

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); final Spinner spinner = (Spinner) menu.getItem(0).getActionView().findViewById(R.id.spinner); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String items = spinner.getSelectedItem().toString(); Log.i("Selected item : ", items); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); return super.onCreateOptionsMenu(menu); } 

Вы должны добавить OnItemClickListener а не OnItemSelectedListener если хотите событие click.

Ваш метод будет работать только в том случае, если вы выберете свои предметы или просмотрите представление с помощью трекбола или стрелок вверх / вниз. Если вы хотите щелкнуть, добавьте OnItemClickListener и переопределите

 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)