2012-02-01 21 views
0

我想在一個偵聽器方法中使用Toast消息,但我得到一個錯誤說:類似Toast的不適用於這個參數..我不明白這個並沒有一些幫助不能解決這個問題?謝謝!試圖使用Toast消息,但得到錯誤

 // Button 1 
    button_1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      //text_1.setText("New text for first row!"); // Change text 
      Toast.makeText(this, "You have clicked on number 1", Toast.LENGTH_LONG).show(); 
      if(controlImage_1) 
      { 
       image_1.setImageResource(R.drawable.android_1b); // Change image 
       controlImage_1 = false; 
      } 
      else 
      { 
       image_1.setImageResource(R.drawable.android_1a); // Change image 
       controlImage_1 = true; 
      } 
      //Toast.makeText(this, "Your download has resumed.", Toast.LENGTH_LONG).show(); 
     } 
    }); 

回答

1

試試:

Toast.makeText(**YourClassName.this**, "You have clicked on number 1", Toast.LENGTH_LONG).show(); 

無* =)

+0

太棒了!這有幫助!謝謝! – 2012-02-01 17:56:14

1
Toast.makeText(this, "You have clicked on number 1", Toast.LENGTH_LONG).show(); 

this本聲明指View.OnClickListener創建。詳細瞭解匿名內部類。

使用MyActivity.this代替

0

您需要在當前ActivityContext傳遞作爲第一個參數。在這種情況下,您不能僅僅說this,因爲它不是指應用程序上下文。你可以在你的上創建一個變量創建和使用上下文或只是這樣做......

Toast.makeText([CLASS_NAME].this, "You have clicked on number 1", Toast.LENGTH_LONG).show(); 

替換[CLASS_NAME]與被延長Activity

0

嘗試getApplicationContext()作爲吐司第一個參數的類.makeText或MyActivity.this

在這裏你的代碼,這指的是查看

而且,如果button_1需要有聽衆的onclick默認情況下,並且使用的是API> 7,其不錯的onclick =定義」 myclickfunction「在佈局本身。清理你的代碼,並容易修改...

0

因爲你在onClick監聽器方法中使用它,所以你不能只使用這個作爲第一個參數。

Toast.makeText(ClassName.this, "You have clicked on number 1", Toast.LENGTH_LONG).show(); 

使用你的classname.this作爲第一個參數。