2013-05-16 3 views
0

Следующий код может работать правильно, но ошибка будет возникать при использовании Toast.makeText(this,((TextView) view).getText().toString(), 2000).show(); Я не знаю почему. Я пытаюсь использовать Toast.makeText(this.parent,((TextView) view).getText().toString(), 2000).show();, это также вызывает ошибку.Toast.makeText вызывает ошибку в setOnItemSelectedListener

private void InitControl() { 
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, 
      nameList.toArray(new String[nameList.size()])); 
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerFolder.setAdapter(adapter1); 

    spinnerFolder.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      Toast.makeText(MainActivity.this, 
        ((TextView) view).getText().toString(), 2000).show(); 

     } 

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

     } 
}); 
+0

Вы сказали, что ваш код работает отлично, так что в чем проблема? Одно можно сказать: если вы используете 'this' в коде, то вы ссылаетесь на экземпляр' new OnItemSElectedListener' не на 'MainActivity.this', что есть у вас в коде. 'this.parent' хорошо, что я не знаю, что это заставляет вас lol: P – LuckyMe

+0

определить 'error', post stacktrace. – njzk2

+0

Toast.makeText (getApplicationContext(), adapter1.getAdapter(). GetItem (position) .toString(), 2000). – Oli

ответ

0

Попробуйте следующее:

public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 
Toast.makeText(getApplicationContext(), lv.getAdapter().getItem(pos).toString(), 2000).show(); 

Счастливый кодирования

0

Попробуйте использовать,

Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show(); 
0

, потому что вы запускаете его в неверном контексте, MainActicity.this не действует для показа тост.

определяют контекст вне слушателя как

final Context context = this; //'this' should be your activity 

и внутри слушателя называют тост, как

Toast.makeText(context, 
        ((TextView) view).getText().toString(), 2000).show(); 

дополнительно, самый правильный способ сделать это, чтобы определить свой собственный класс, который реализует OnItemClickListener, определите переменную-член Context и установите ее в конструкторе.

0

Замените

(TextView) view).getText().toString() 

по

spinnerFolder.getSelectedItem().toString() 
0

длительность Тост не значение, которое вы положили в секундах или миллисекунды ds, это флаг, который вы должны установить, вы должны поставить там LENGTH_SHORT, или LENGTH_LONG. Это флаги, если вам нужна более длинная продолжительность, а затем length_long, вам нужно будет использовать notifications

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