首页 文章

为什么startActivity在一个方法中工作而在另一个方法中失败?

提问于
浏览
0

我是一个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 回答

  • 1

    您需要将 this 引用更改为封闭类的引用,即如果您的类名为 Main ,则将其更改为 Main.this .

  • 3

    因为 startActivityContext 的方法 . 在第一个示例中,它是从 Context 对象运行,第二个是从 ButtonHandler 对象运行 . 这是一个范围问题 .

相关问题