程序中有两个java文件。在第一个文件中当应用程序开始时,activity也开始运行。想让第二个文件调用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
}
}
现在这样开启第二个activity:
Intent myIntent = new Intent(this, AuswahlActivity.class);
this.startActivity(myIntent);
但是出现错误提示:
The constructor Intent(new View.OnClickListener(){}, Class<AuswahlActivity>) is undefined
不知道你有没有在你得在Adnroidmanifest.xml中定义 CallerActivity, AuswahlActivity 这两个activity ?
下面是我写的一个例子:
public class CallerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(CallerActivity.this, AuswahlActivity.class);
CallerActivity.this.startActivity(myIntent);
}
});
}
}
public class AuswahlActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.jump);
}
}
AndroidManifest.xml
package="com.example.jumpactivity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".CallerActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.wind.activity" />
</activity>
<activity
android:name=".AuswahlActivity"
android:screenOrientation="portrait">
</activity>
</application>
这样跳转没问题的
使用这个方法:
Intent myIntent = new Intent(CallerActivity.this, AuswahlActivity.class);
CallerActivity.this.startActivity(myIntent);
CallerActivity是第一个activity的名称。android抛出的这个异常是因为一些内部类调用了它。
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而不是activity。intent的第一个参数是 Context
(应该是activity),因此导致了出现的错误。