Kev*_*vin 0 java mobile android
传递给intent构造函数时this和之间有什么区别ActivityClass.this
例如,给定2个活动:ActivityOne和ActivityTwo
以下不起作用(编译错误)
@Override
public void onClick(View v) {
Intent intent = null;
Log.i(TAG, this.toString());
Log.i(TAG, ActivityOne.this.toString());
intent = new Intent(this, ActivityTwo.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
这虽然有效
@Override
public void onClick(View v) {
Intent intent = null;
Log.i(TAG, this.toString());
Log.i(TAG, ActivityOne.this.toString());
intent = new Intent(ActivityOnethis, ActivityTwo.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
日志中的日志信息是
activitylab.ActivityOne$1@41fc5818
activitylab.ActivityOne@41fa2948
Run Code Online (Sandbox Code Playgroud)
虽然它们不同,但传递活动的常见答案通常是使用this,我不是为什么我遇到这个问题
我假设你的onClick方法在一个匿名类实例中(虽然你没有包含完整的代码,ActivityOne$1你在打印时看到的输出this是如何显示匿名内部类),所以这是指匿名内部类实例,并且不是ActivityOne包含此实例的实例.
ActivityOne.this返回对包含ActivityOne实例的引用,这是您应该传递给Intent构造函数的内容.
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |