2011-04-22 103 views
3

我在我的主要活動中有一個無效返回類型的方法。如果我在方法內部創建一個Toast,它會顯示錯誤「類型不匹配:不能將void轉換爲toast」。任何人都可以解釋什麼是問題,並幫助我解決方案?類型不匹配:無法將void轉換爲Toast

public class HelloList<View> extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES)); 
ListView lv=getListView(); 
     lv.setTextFilterEnabled(true); 
     lv.setOnItemClickListener(new OnItemClickListener(){ 
      @Override 

      public void onItemClick(AdapterView<?> arg0,android.view.View arg1, int arg2, long arg3) { 
       // TODO Auto-generated method stub 
      // Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(),Toast.LENGTH_SHORT).show(); 
       System.out.println(arg2); 
       String s="position is "+arg2; 
       Toast.makeText(getApplicationContext(),s,Toast.LENGTH_SHORT).show(); 
      } 

      }); 
     registerForContextMenu(lv); 
     /*int i=lv.getCheckedItemPosition(); 
      Toast.makeText(getApplicationContext(),,Toast.LENGTH_SHORT).show();*/ 
    } 
    public void onCreateContextMenu(ContextMenu menu, android.view.View v, 
            ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(0x7f030000, menu); 
    } 

    public boolean onContextItemSelected(MenuItem item) { 
     AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
     switch (item.getItemId()) { 
     case 0x7f030000: 
     editNote(info.id); 
     return true; 

     default: 
     return super.onContextItemSelected(item); 
     } 
    } 

    public void editNote(long id) { 
    Toast m=Toast.makeText(this, "asdasd", 3); 
    m.show(); 

    } 
+1

能否請您告訴我們,代碼? – Mudassir 2011-04-22 07:14:19

+0

某些代碼片段會有幫助。 – shihpeng 2011-04-22 07:14:34

+0

您可以發佈方法嗎? – 2011-04-22 07:14:41

回答

7

問題是,您可以將一個方法分配給一個變量。舉杯應該是這樣的,如果你想直接顯示它:

Toast.makeText(context, text, duration).show(); 

或在您的情況:

Toast.makeText(this, "sadasd", 2).show(); 

如果你想敬酒存儲在一個變量,然後顯示出來,你有做這樣的:

Toast toast = Toast.makeText(context, text, duration); 

toast.show(); 

或者在您的具體情況:

Toast toast = Toast.makeText(this, "sadasd", 2); 
toast.show(); 

附註:最好在Toast中使用常量LENGHT_SHORT和LENGTH_LONG來定義持續時間而不是2.特別是如果2在這裏看起來不是有效值。看到這裏脫穎而出詳情:http://developer.android.com/reference/android/widget/Toast.html

然後,它應該是這樣的:

Toast.makeText(this, "sadasd", Toast.LENGTH_LONG).show(); 
+0

+1快速且良好的答案。 – 2011-04-22 07:20:12

+0

@Roflcoptr:謝謝..錯誤消失了,但烤麪包沒有出現在屏幕上。 – Pravy 2011-04-22 07:28:13

+0

@Pravy這可以有多種原因。你的代碼現在看起來如何? – RoflcoptrException 2011-04-22 07:29:34

0
Toast m=Toast.makeText(this, "sadasd", 2); 
m.show(); 
相關問題