Android图片按钮打开新活动

时间:2014-07-02 01:17:20

标签: android android-intent android-activity imagebutton

我想从android中的图像按钮打开新活动。我尝试使用此代码,但无法正常工作。

main.class

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.content.Context;
import android.view.View;
import android.widget.ImageButton;


public class main extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    openMenu();
}

public void openMenu() {

    final Context context = this;

    ImageButton imgbtn = (ImageButton) findViewById(R.id.menu_button);

    imgbtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent menu = new Intent(context, menu.class);
            startActivity(menu);

        }

    });
}

}

menu.class

public class menu extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
}

错误: android.content.ActivityNotFoundException:无法找到显式活动类{dev.com.test / dev.com.test.menu};你有没有在AndroidManifest.xml中声明这个活动? 我的回答:是的

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

3 个答案:

答案 0 :(得分:0)

不,你还没有把它包含在你的清单中。您所包含的是主要活动。但是您必须包括每个活动,包括您尝试创建的这个新活动。这是一个示例(您可能需要更改包名称):

<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
    <activity
    android:name=".main"
    android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
    android:name="com.test.menu"
    android:label="My second activity"
    android:parentActivityName="com.test.main" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.test.main" />
    </activity>

</application>

答案 1 :(得分:0)

确保您的AndroidManifest看起来像这样

    <application
         android:allowBackup="true"
         android:icon="@drawable/icon"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
    <activity
    android:name=".main"
    android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
     android:name=".menu">      // you need to add these 3 lines inside application tag.
    </activity>

</application>

错误android.content.ActivityNotFoundException: Unable to find explicit activity class {dev.com.test/dev.com.test.menu}; have you declared this activity in your AndroidManifest.xml?非常直截了当。每当您创建新活动时,请确保该活动已在AndroidManifest.xml标记内的application中注册。

答案 2 :(得分:0)

 ImageButton mainButton = (ImageButton) findViewById(R.id.imageButton);
        mainButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent intent = new Intent(context, MainActivity2.class);
                startActivity(intent);

            }
        });