intdelay
在代码开头由1000
初始化。
我正在尝试通过在单击按钮时添加Toast来确保编辑框中的值更新intdelay
的值。
但是当我运行应用程序时,我遇到了以下问题:
Error:(46, 22) error: no suitable method found for makeText(<anonymous OnClickListener>,String,int)
method Toast.makeText(Context,CharSequence,int) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
method Toast.makeText(Context,int,int) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Context)
这是我的代码的一部分:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
delayedttxt=(EditText)findViewById(R.id.delayedttxt);
String delay=delayedttxt.getText().toString(); //this will get a string
try{
int intdelay = Integer.parseInt(delay);
}catch(NumberFormatException ex){ // handle your exception
}
Button btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flashLight.switchFlash();
Toast.makeText(this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
}
});
我该如何解决?
答案 0 :(得分:3)
你给出了错误的背景; 改变这一行:
Toast.makeText(this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
到
Toast.makeText(YourActivity.this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
答案 1 :(得分:1)
那是因为makeText
想要Context
作为第一个参数。您位于onClick
的{{1}}函数内。这意味着OnClickListener
指向您的this
。你必须有这样的东西
OnClickListener
答案 2 :(得分:0)
试试这样:
Toast.makeText(YourActivityName.this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
答案 3 :(得分:0)
如果flashLight.switchFlash方法中没有错误,则更改上下文
答案 4 :(得分:0)
您正试图在OnClickListener
内展示您的祝酒词。在这种情况下,this
关键字指的是OnClickListener
类型的实例,而不是Context
,就像它是必需的一样。
您应该使用<YourActivityClass>.this
来引用封闭式活动实例,即Context
并可用于显示吐司。
答案 5 :(得分:0)
尝试插入以下代码:
Toast.makeText(getApplicationContext(),"your integer is " + intdelay , Toast.LENGTH_LONG).show();
答案 6 :(得分:0)
请在您的活动中执行这些操作,
Toast.makeText(getApplicationContext(),"your integer is " + intdelay , Toast.LENGTH_LONG).show();
答案 7 :(得分:0)
你应该从
改变Toast.makeText(this,"your integer is " + intdelay , Toast.LENGTH_LONG).show();
到
Toast.makeText(getContext(),"your integer is " + intdelay , Toast.LENGTH_LONG).show();