2013-05-16 4 views
5

Я использовал setOnItemSelectedListener, чтобы указать, какой элемент выбран в счетчике, но я думаю, что он не вызывается. он должен печатать «Работает», когда программа запускается.setOnItemSelectedListener из Spinner не звонит

код XML:

<Spinner 
    android:id="@+id/quantity" 
    android:layout_width="94dp" 
    android:layout_height="27dp" 
    android:layout_x="11dp" 
    android:layout_y="118dp" 
    /> 

Java код:

public class quantity extends Activity 
{ 

Spinner quantity; 


    public void onCreate(Bundle savedInstanceState) 
    { 
    quantity=(Spinner)findViewById(R.id.quantity); 

    quantity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
      { 
       public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
       { 
        Object item = parent.getItemAtPosition(pos); 

        System.out.println("it works... "); 

       } 

       public void onNothingSelected(AdapterView<?> parent) 
       { 

       } 
      }); 


    } 

} 
+2

Вы назовешь setContentView (R.layout. ), прежде чем делать findViewById – chopchop

+0

Как @chopchop предположил, что вы можете получить nullpointerexception. вы не установили содержимое своего макета в действие – Raghunandan

+0

Да, но я сделал это, но чтобы сделать код короче, я пропустил здесь –

ответ

12

Попробуйте

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

      /*for fill your Spinner*/ 
     List<String> spinnerArray = new ArrayList<String>(); 
     spinnerArray.add("Item 1"); 
     spinnerArray.add("Item 2"); 
     spinnerArray.add("Item 3"); 
     spinnerArray.add("Item 4"); 
     spinnerArray.add("Item 5"); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, spinnerArray); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     Spinner spinner = (Spinner) findViewById(R.id.quantity); 
     spinner.setAdapter(adapter); 

     spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, 
        int position, long id) { 
       Object item = adapterView.getItemAtPosition(position); 
       if (item != null) { 
        Toast.makeText(MainActivity.this, item.toString(), 
          Toast.LENGTH_SHORT).show(); 
       } 
       Toast.makeText(MainActivity.this, "Selected", 
         Toast.LENGTH_SHORT).show(); 

      } 

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

      } 
     }); 
    } 
+0

Спасибо, но проблема решена :-) –

+0

Решили ли вы проблему так же, как и я? –

+3

@ KamyarParastesh, если вы уже решили проблему, было бы неплохо поделиться своим ответом со всеми, чтобы люди не тратили время на решение проблемы для вас, которую вы уже решили. – CoderOfTheNight

1

вы пропустили setContentView (R.layout.yourlayout);

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