2013-05-16 2 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'를 사용하면,'MainActivity.this'가 아닌'새로운 OnItemSElectedListener'의 인스턴스를 참조하는 것입니다. 이것은 코드 자체에서 가지고있는 것입니다. 'this.parent' 글쎄, 내가 당신에게 권하는 것을 모른다. P – LuckyMe

+0

'error'를 정의하고, 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(); 

행복 당신의

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

spinnerFolder.getSelectedItem().toString() 
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

코딩 또는 밀리 세컨 ds, 그것은 당신이 놓아야하는 깃발, 당신은 거기에 넣어야한다 LENGTH_SHORT, 또는 LENGTH_LONG. 이것은 플래그입니다. length_long보다 긴 기간이 필요한 경우 사용해야합니다. notifications

0

에 의해 토스트 기간은 당신이 초, 거기에 넣어 값이 아닌 교체

관련 문제