2011-04-22 51 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(); 
相关问题