[英]Android: Multiple Classes to use same XML Layout
所以我在僅使用一個xml文件使用多個類時遇到了一些麻煩。 我想要做的是,我很難選擇一個用戶,游戲中花費的時間越少,就越難。
我已經成功地設置好了我的常規設置,該設置很難通過單擊xml文件來加載。 為了省去制作多個xml文件的麻煩和其他麻煩,我創建了一個用較少時間的類,並將其與setContentView(R.layout.activity_main);
。 一次只有一個類似乎可以將它的contentview設置為一個xml文件。 單擊“輕松”按鈕后,即使相同的代碼很難正常運行,應用也會崩潰。
調用每個類的代碼如下:
private void setButtonOnClickListeners(){
normalBut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent playgameN = new Intent(getApplicationContext(),MainActivity.class);
startActivity(playgameN);
}
});
easyBut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent playgameE = new Intent(getApplicationContext(),EasyMain.class);
startActivity(playgameE);
}
});
該代碼可以成功運行,但是在按下按鈕時會崩潰。
簡單類和普通類都具有setContentView(R.layout.activity_main); 在各自的創造上。
當按鈕導致崩潰時,我的日志如下:
01-07 20:29:48.630: I/Adreno200-EGLSUB(23442): <ConfigWindowMatch:2081>: Format RGBA_8888.
01-07 20:29:48.630: D/memalloc(23442): /dev/pmem: Mapped buffer base:0x51851000 size:4915200 offset:4300800 fd:67
01-07 20:29:48.780: D/memalloc(23442): /dev/pmem: Mapped buffer base:0x51f78000 size:1228800 offset:614400 fd:70
01-07 20:29:50.790: I/Adreno200-EGLSUB(23442): <ConfigWindowMatch:2081>: Format RGBA_8888.
01-07 20:29:50.800: D/memalloc(23442): /dev/pmem: Mapped buffer base:0x522a4000 size:1843200 offset:1228800 fd:73
01-07 20:29:50.820: D/memalloc(23442): /dev/pmem: Mapped buffer base:0x52466000 size:4300800 offset:3686400 fd:79
01-07 20:29:50.870: D/memalloc(23442): /dev/pmem: Unmapping buffer base:0x51851000 size:4915200 offset:4300800
01-07 20:29:50.870: D/memalloc(23442): /dev/pmem: Unmapping buffer base:0x51f78000 size:1228800 offset:614400
01-07 20:29:52.610: D/memalloc(23442): /dev/pmem: Mapped buffer base:0x51751000 size:1228800 offset:614400 fd:64
01-07 20:29:52.700: W/dalvikvm(23442): threadid=1: thread exiting with uncaught exception (group=0x40af09f0)
01-07 20:29:52.710: E/AndroidRuntime(23442): FATAL EXCEPTION: main
01-07 20:29:52.710: E/AndroidRuntime(23442): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.phil3992.colourguess/com.phil3992.colourguess.PractEnd}; have you declared this activity in your AndroidManifest.xml?
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.app.Activity.startActivityForResult(Activity.java:3195)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.app.Activity.startActivity(Activity.java:3302)
01-07 20:29:52.710: E/AndroidRuntime(23442): at com.phil3992.colourguess.dif$2.onClick(dif.java:38)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.view.View.performClick(View.java:3528)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.view.View$PerformClick.run(View.java:14235)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.os.Handler.handleCallback(Handler.java:605)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.os.Handler.dispatchMessage(Handler.java:92)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.os.Looper.loop(Looper.java:137)
01-07 20:29:52.710: E/AndroidRuntime(23442): at android.app.ActivityThread.main(ActivityThread.java:4424)
01-07 20:29:52.710: E/AndroidRuntime(23442): at java.lang.reflect.Method.invokeNative(Native Method)
01-07 20:29:52.710: E/AndroidRuntime(23442): at java.lang.reflect.Method.invoke(Method.java:511)
01-07 20:29:52.710: E/AndroidRuntime(23442): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
01-07 20:29:52.710: E/AndroidRuntime(23442): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
01-07 20:29:52.710: E/AndroidRuntime(23442): at dalvik.system.NativeStart.main(Native Method)
我如何獲得它,以便我所有的類都可以在調用時分別在同一布局上運行? 這真的讓我感到困惑,因為該代碼可以完美地在一個類上工作,但不能在另一個類上工作,因此使我相信setContent是問題的原因
更新:
表現:
類的聲明如下:
<activity
android:name=".EasyMain"
android:label="@string/app_name"
android:screenOrientation="portrait">
</activity>
您需要在AndroidManifest中聲明您的Activity,該錯誤是特定的:它試圖找到名為“ PractEnd”的Activity,但您在Manifest中僅聲明了“ EasyMain”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.