簡體   English   中英

Android:多個類可使用相同的XML布局

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM