我是一个Android初学者 .
我正在努力理解为什么startActivity从我发现的教程中复制时正常运行,并且当我进行最小的更改时失败 .
教程中的代码:
private class ButtonHandler implements View.OnClickListener {
public void onClick(View v) {
handleButtonClick();
}
}
private void handleButtonClick() {
startActivity(new Intent(this, SecondAct.class));
}
这样可行 . 当我尝试将其更改为我认为更简单的设计时,我收到错误 .
private class ButtonHandler implements View.OnClickListener {
public void onClick(View v) {
startActivity(new Intent(this, SecondAct.class));
}
}
错误是:
构造函数Intent(FirstTwoApps.ButtonHandler,Class)未定义
请注意,我所做的只是将actionButtonClick()方法中的操作移动到onClick()方法 . 显然这是不允许的,但我不明白为什么 .
任何帮助是极大的赞赏 .
2 回答
您需要将
this
引用更改为封闭类的引用,即如果您的类名为Main
,则将其更改为Main.this
.因为
startActivity
是Context
的方法 . 在第一个示例中,它是从Context
对象运行,第二个是从ButtonHandler
对象运行 . 这是一个范围问题 .