尝试使用Toast消息,但得到错误

时间:2012-02-01 17:47:08

标签: android

我正在尝试在侦听器方法中使用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();
        }
    });

5 个答案:

答案 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()作为Toa​​st.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作为第一个参数。