我正在尝试在侦听器方法中使用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();
}
});
答案 0 :(得分:1)
试一试:
Toast.makeText(**YourClassName.this**, "You have clicked on number 1", Toast.LENGTH_LONG).show();
没有* =)
答案 1 :(得分:1)
Toast.makeText(this, "You have clicked on number 1", Toast.LENGTH_LONG).show();
此声明中的this
是指您创建的View.OnClickListener
。阅读更多关于匿名内部类的内容。
使用MyActivity.this
代替
答案 2 :(得分:0)
您需要传入当前Context
的{{1}}作为第一个参数。在这种情况下,您不能只说Activity
,因为它不是指应用程序上下文。您可以在创建时创建变量并使用该上下文,或者只是执行此操作...
this
将Toast.makeText([CLASS_NAME].this, "You have clicked on number 1", Toast.LENGTH_LONG).show();
替换为展开[CLASS_NAME]
答案 3 :(得分:0)
尝试使用getApplicationContext()作为Toast.makeText或MyActivity.this的第一个参数
在您的代码中,这是指视图
此外,如果button_1默认需要onclick侦听器,并且您正在使用API> 7,很好的在布局本身定义onclick =“myclickfunction”。清理代码并轻松修改......
答案 4 :(得分:0)
因为您在onClick Listener方法中使用它,所以不能仅使用 this 作为第一个参数。
Toast.makeText(ClassName.this, "You have clicked on number 1", Toast.LENGTH_LONG).show();
使用您的classname.this作为第一个参数。