我有两个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
我该如何运作?
答案 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正在抛出这个错误,因为你可能会从某个内部类中调用它。