2014-07-02 34 views
0

我想從Android中的圖像按鈕打開新的活動。我試着用這個代碼,但不起作用。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> 

回答

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?是非常開門見山。每當您創建新活動時,請確保在application標記內AndroidManifest.xml中註冊活動。

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> 
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); 

      } 
     }); 
+0

也許你可以添加一些文字來描述你的解決方案,以改善你的答案 – Kalamarico

相關問題