如何在android中启动第二个活动?得到错误

时间:2011-03-10 08:12:17

标签: android android-activity

我有两个java文件。在第一个我有我的活动,从应用程序启动时开始。 第二个叫做“AuswahlActivity.java”和xml文件“auswahl.xml”。我有这个代码到AuswahlActivity.java:

 public class AuswahlActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.auswahl);
        //Your code here
    }
}

现在我想开始这样的活动:

Intent myIntent = new Intent(this, AuswahlActivity.class);
this.startActivity(myIntent);

但我收到错误消息The constructor Intent(new View.OnClickListener(){}, Class<AuswahlActivity>) is undefined

我该如何运作?

5 个答案:

答案 0 :(得分:22)

Intent myIntent = new Intent(this, AuswahlActivity.class);    
this.startActivity(myIntent); 

这部分代码可能位于OnClickListener内,只需使用

即可
Intent myIntent = new Intent(YouCurrentActivity.this, AuswahlActivity.class);
YouCurrentActivity.this.startActivity(myIntent); 

原因是,在一个匿名类(你的OnClickListener)中this引用Onclicklistener而不是活动...... Intent的第一个参数是Context(应该是活动),因此错误

答案 1 :(得分:2)

我假设您尝试在OnClickListener中启动新活动。这就是为什么这指的是OnClickListener而不是Activity。这就是为什么找不到合适的构造函数的原因。

所以你应该使用

Intent myIntent = new Intent(TheCurrentActivity.this, AuswahlActivity.class);

代替

答案 2 :(得分:2)

您是否也在manifest file

中撰写了活动

答案 3 :(得分:1)

我猜是这行:

Intent myIntent = new Intent(this, AuswahlActivity.class);

发生在OnClickListener中,它是主Activity的匿名内部类。只需在this前加上活动的类名。

答案 4 :(得分:1)

以这种方式使用

Intent myIntent = new Intent(CallerActivity.this, AuswahlActivity.class);
CallerActivity.this.startActivity(myIntent);

CallerActivity是您第一个活动的名称。 Android正在抛出这个错误,因为你可能会从某个内部类中调用它。