2 hcg 21 hcg_21 于 2012.11.13 11:00 提问

在android中如何开启第二个activity

程序中有两个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

4个回答

zhenglingkun
zhenglingkun   2012.11.15 18:08
已采纳

下面是我写的一个例子:
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>


这样跳转没问题的

nana4ever
nana4ever   2012.11.13 16:35

使用这个方法:

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

CallerActivity是第一个activity的名称。android抛出的这个异常是因为一些内部类调用了它。

zhenglingkun
zhenglingkun   2012.11.14 15:10

不知道你有没有在你得在Adnroidmanifest.xml中定义 CallerActivity, AuswahlActivity 这两个activity ?

hcg_21
hcg_21 我在manifest文件中定义这两个activity了。
大约 5 年之前 回复
myq_26
myq_26   2012.11.22 16:46
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),因此导致了出现的错误。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!