我有一个处理 UI 和按钮的 MainActivity,但我有一个单独的类来处理代码的 onClickListener
部分。我的主类定义为:public class MainActivity extends Activity
我在类中的按钮定义如下:
MyButtonListener l = new MyButtonListener();
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(l);
MyButtonListener
类定义为public class MyButtonListener extends MainActivity implements View.OnClickListener
。问题来了,当我尝试在 MyButtonListener
中 toast 时。我不知道为 toast 该说些什么。我试过:MainActivity.this、MyButtonListener.this、getContextApplication()。他们似乎都没有工作。这就是我想表达敬意的方式:
Toast.makeText(MyButtonListener.this, message, Toast.LENGTH_LONG).show();
有没有人为了显示来自 MyButtonListener
类的 toast 而放置什么上下文?
最佳答案
创建全局变量
Context context;
在MainActivity中设置
context = this;
在主 Activity 的onCreate方法中
现在在 MyButtonListener 构造函数中传递上下文 像这样
MyButtonListener l = new MyButtonListener(context);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(l);
并在 MyButtonListener 中添加构造函数
private Context context;
public MyButtonListener(Context context) {
this.context = context;
}
并在 toast 中使用该上下文
关于java - 从 onClickListener 类显示 Toast 的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211952/