Получить позицию spinner в Android

Я пытаюсь получить позицию (число) счетчика, когда выбрано, чтобы использовать его в другом Управлении, которое будет отображать другую карту каждый раз в зависимости от выбранного элемента. Когда я запускаю приложение, он сбой. Это первый код операции:

public class TestProjectActivity extends Activity { public Spinner spinner1; public Integer number; private Button valideButton; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MySpinner(); valide_button(); } public void MySpinner() { final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.num, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner1.setAdapter(adapter); spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { // Object item = parentView.getItemAtPosition(position); TestProjectActivity.this.number = spinner1 .getSelectedItemPosition() + 1; } public void onNothingSelected(AdapterView<?> arg0) {// do nothing } }); } public void valide_button() { valideButton = (Button) findViewById(R.id.valide_button); valideButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(TestProjectActivity.this, MetroMapActivity.class); startActivity(intent); } }); } } 

Solutions Collecting From Web of "Получить позицию spinner в Android"

Способ получения выбора счетчика:

  spinner1.getSelectedItemPosition(); 

Ссылка на документацию: http://developer.android.com/reference/android/widget/AdapterView.html#getSelectedItemPosition ()

Однако в вашем коде одно место, на которое вы ссылаетесь, находится внутри вашего setOnItemSelectedListener() . Нет необходимости опроса счетчика, поскольку метод onItemSelected получает позицию как переменную «позиция».

Таким образом, вы можете изменить эту строку:

 TestProjectActivity.this.number = position + 1; 

Если это не устранит проблему, отправьте сообщение об ошибке, сгенерированное при сбое приложения.

  final int[] positions=new int[2]; Spinner sp=findViewByID(R.id.spinner); sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Toast.makeText( arg2....); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); 
 if (position ==0) { if (rYes.isChecked()) { Toast.makeText(SportActivity.this, "yes ur answer is right", Toast.LENGTH_LONG).show(); } else if (rNo.isChecked()) { Toast.makeText(SportActivity.this, "no.ur answer is wrong", Toast.LENGTH_LONG).show(); } } 

Этот код должен выбрать оба флажка.
Есть ли проблемы с этим?