您好,我是 android 新手,我对 Activity 上下文中的此关键字感到困惑。这是一个代码 fragment ,当按下按钮时,它会简单地打印到屏幕上。但工作室提出了一个问题。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("My app","onCreate is called");
Toast1("onCreate");
Button btn=(Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("My app","Button is pressed");
Toast.makeText(this,"Button pressed",Toast.LENGTH_SHORT).show();//Here is a error
}
});
}
如何知道 this 关键字引用的是哪个 Activity 或类?
最佳答案
在匿名类中,this
指的是匿名类的 block 。要引用包含匿名类的 Activity 类,您需要在 this
关键字
.
ActivityClassName.this
Toast
要么需要要显示它的 Activity 的上下文,要么需要应用程序的上下文
使用 Activity 上下文进行 Toast
Toast.makeText(Activityname.this,"Button pressed",Toast.LENGTH_SHORT).show();
注意:如果您的 Toast
位于任何匿名类中,则需要使用 ActivityName.this
。如果不是这种情况,只需使用 this
即可完成工作。
使用应用程序上下文进行 Toast
Toast.makeText(getApplicationContext(),"Button pressed",Toast.LENGTH_SHORT).show();
关于java - 匿名类中的 Activity 名称是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47968870/