2014-02-27 222 views
3

我試圖在Android應用程序的不同頁面之間進行導航,當我運行該項目需要我到模擬器屏幕,但顯示一條錯誤消息:如何瀏覽從一個活動到另一個活動

enter image description here

以下是在的.java代碼

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

    final Spinner spinner = (Spinner)findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this, R.array.MyPictures, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 


    final Button button = (Button) findViewById(R.id.button02); 
    button.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      setContentView(R.layout.imageview); 
     } 
    }); 

} 

logcat的:

02-27 11:58:41.374: D/AndroidRuntime(313): Shutting down VM 
02-27 11:58:41.374: W/dalvikvm(313): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
02-27 11:58:41.454: E/AndroidRuntime(313): FATAL EXCEPTION: main 
02-27 11:58:41.454: E/AndroidRuntime(313): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.os.Looper.loop(Looper.java:123) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-27 11:58:41.454: E/AndroidRuntime(313): at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 11:58:41.454: E/AndroidRuntime(313): at java.lang.reflect.Method.invoke(Method.java:521) 
02-27 11:58:41.454: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-27 11:58:41.454: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-27 11:58:41.454: E/AndroidRuntime(313): at dalvik.system.NativeStart.main(Native Method) 
02-27 11:58:41.454: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException 
02-27 11:58:41.454: E/AndroidRuntime(313): at com.example.test.MainActivity.onCreate(MainActivity.java:29) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-27 11:58:41.454: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
02-27 11:58:41.454: E/AndroidRuntime(313): ... 11 more 

是否有任何錯誤不知道????

這是我的第二個項目,這顯示了相同的錯誤 感謝

+0

發佈您的logcat消息。 – InnocentKiller

+0

'MainActivity'中的'line no 29'是什麼? – kId

+0

根據「InnocentKiller」,你不能在一個Activity中設置兩次「setContentView()」,只需刪除setContentView(R.layout.imageview);從button button.And做適當的action.if你想改變佈局或setContentView()使用動畫。 –

回答

4

你有

final Button button = (Button) findViewById(R.id.button02); 
    button.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      setContentView(R.layout.imageview); 
     } 
    }); 

從按鈕點擊刪除此setContentView(R.layout.imageview);。還刪除全球範圍內的final並聲明spinnerbutton

所以你的按鈕點擊事件應該是這樣的。

final Button button = (Button) findViewById(R.id.button02); 
     button.setOnClickListener(new View.OnClickListener(){ 
      public void onClick(View v){ 
       // Do something here 
      } 
     }); 

基本上你的完整活動是這樣的。

Button button; 
Spinner spinner; 

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

    spinner = (Spinner)findViewById(R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this, R.array.MyPictures, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 


    button = (Button) findViewById(R.id.button02); 
    button.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      Intent mSignup = new Intent(activityOne.this, activityTwo.class); 
      startActivity(mSignup); 
     } 
    }); 

} 

如果您使用的是imageview,然後將其設置在onCreate方法中,然後嘗試。

+0

那麼按鈕如何將我帶到其他頁面imageview? – Feras

+0

請參閱我的答案中更新了按鈕單擊代碼,只需更改您的與我的活動名稱即可。 – InnocentKiller

+1

而且如果你想去其他活動,那麼不要忘記更新'manifest'文件。您必須在清單文件中註冊您的活動。 – InnocentKiller

相關問題