Android MainActivity.this和this之间有什么区别
当我在main活动中键入这样的代码时:-Android MainActivity.this和this之间有什么区别,android,Android,当我在main活动中键入这样的代码时:- Button btn=(Button) findViewById(R.id.mainButton1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View p1) { Toast.makeText(this,"Some text...",Toast.LENGTH_SHORT).show(); }
Button btn=(Button) findViewById(R.id.mainButton1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View p1)
{
Toast.makeText(this,"Some text...",Toast.LENGTH_SHORT).show();
}
});
它显示了错误
没有适用的方法来解决这个问题
“(com.example.MainActivity.(匿名),java.lang.String,int)”
但是
这并没有显示错误,
因此,main活动中是否存在任何差异。此
和此
请投票删除这篇文章,因为这篇文章对未来的读者没有任何用处。进行此操作时,所有信息以两个问题提供:
Button btn=(Button) findViewById(R.id.mainButton1);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
Toast.makeText(MainActivity.this,"Some text...",Toast.LENGTH_SHORT).show();
}
});
您正在使用接口OnClickListener
的实现创建一个匿名类
现在,当您使用
this
keywork InonClick()
时,这里的this
指的是创建的匿名类的实例(尽管您也可以访问MainActivity的实例),因此,要引用MainActivity的实例,您必须使用MainActivity,您可以使用this@MainActivity
Button btn=(Button) findViewById(R.id.mainButton1);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
Toast.makeText(MainActivity.this,"Some text...",Toast.LENGTH_SHORT).show();
}
});