Toast.makeText()
方法的其中一个参数是上下文。Android中的敬酒
而对于该参数,我可以看到在某些Android教科书中给出的值为ActivityName.this
。
不应该是this.xxx
?
Toast.makeText()
方法的其中一个参数是上下文。Android中的敬酒
而对于该参数,我可以看到在某些Android教科书中给出的值为ActivityName.this
。
不应该是this.xxx
?
并不总是,这取决于你在哪里创建吐司。例如,如果您在Button
点击侦听器的onClick
方法中创建了Toast,则this
将是Button,它不能提供上下文。
你不能在click监听器中使用'this'只有它是匿名类..有几种实现监听器的方法..一种方法是声明'android: onClick =“click”属性为按钮XML并声明方法'click(View v){//执行任务}'..在这种情况下,侦听器不是匿名类 –
这只是一个可能的例子来解释为什么你不能总是将此用作上下文。我不打算做这个讲座。 – fasteque
放轻松.u刚刚提到的点击监听器,因此我指出了它。 –
不是。如果您在ActivityName
的内部类中,请致电ActivityName.this
。如果你不在内部班级,你只需拨打this
。 关键是要参考Activity
并将其用作上下文。
ActivityName.this
如果代码位于嵌套类中,则获取对具有该名称的封闭类的对象的引用。例如,如果你写的代码你Activity
的代码中:
public void onCreate(Bundle bundle) {
// ...
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() { // An anonymous nested class
@Override
public void onClick(View v) {
Toast.makeText(this, "Example", Toast.LENGTH_SHORT);
// This one causes an error; this is not a Context
Toast.makeText(YourActivity.this, "Example", Toast.LENGTH_SHORT);
// This one works
}
});
}
第一this
现指型OnClickListener
的对象。这不是Context
,所以这是一个错误。第二个是指当地YourActivity
,这是一个Activity
,所以一个Context
,所以它的工作原理。
你是如何比较'ActivityName.this'和'this.xxx'? 'this.xxx'将始终引用类的成员本身。 –
你在说'this'或'this.xxx' –