2014-02-27 126 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

相关问题