Android上的标签上的按钮

问题描述:

我想在Android上的标签上查看按钮。一切都编译和构建,但应用程序无法启动。 MenuActivity是一个称为菜单选项卡小部件的特定选项卡的活动。Android上的标签上的按钮

这是我的代码:

package ru.infolizard.medinfo; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 

public class MenuActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.menu); 

     Button button = (Button)this.findViewById(R.id.buttonSearch); 
     button.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       //Toast.makeText(MenuActivity.this, "Menu pressed", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

这是logcat的:

02-03 17:58:41.255: E/AndroidRuntime(1065): FATAL EXCEPTION: main 
02-03 17:58:41.255: E/AndroidRuntime(1065): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.infolizard.medinfo/ru.infolizard.medinfo.MedInfoTabWidgetActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.infolizard.medinfo/ru.infolizard.medinfo.MenuActivity}: java.lang.NullPointerException 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.os.Looper.loop(Looper.java:137) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at java.lang.reflect.Method.invoke(Method.java:511) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at dalvik.system.NativeStart.main(Native Method) 
02-03 17:58:41.255: E/AndroidRuntime(1065): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.infolizard.medinfo/ru.infolizard.medinfo.MenuActivity}: java.lang.NullPointerException 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:1797) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.widget.TabHost.setCurrentTab(TabHost.java:346) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.widget.TabHost.addTab(TabHost.java:236) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at ru.infolizard.medinfo.MedInfoTabWidgetActivity.onCreate(MedInfoTabWidgetActivity.java:29) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.Activity.performCreate(Activity.java:4465) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  ... 11 more 
02-03 17:58:41.255: E/AndroidRuntime(1065): Caused by: java.lang.NullPointerException 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at ru.infolizard.medinfo.MenuActivity.onCreate(MenuActivity.java:18) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.Activity.performCreate(Activity.java:4465) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
02-03 17:58:41.255: E/AndroidRuntime(1065):  ... 21 more 

如果我评论关于一个按钮的一切,它工作正常。

+0

你可以发布你的XML布局呢? – 2012-02-03 14:10:34

+0

你的代码无法找到你的按钮,所以返回null。你可以发布你的菜单布局xml吗? – mcnicholls 2012-02-03 14:14:47

+0

谢谢,伙计们。真的,我需要仔细查看xml布局。 – wzbozon 2012-02-03 14:26:15

此致RES /布局/ menu.xml文件不具有ID R.id.buttonSearch按钮(ID机器人:ID = “@ + ID/buttonSearch”)

+0

我将另一个活动的按钮绑定到menuActivity的侦听器。 我有两个按钮: R.id.buttonDrugSearch R.id.buttonSearch 第一个是menuActivity的视图的按钮,第二个是上anotherAcitivity的视图。我绑定了R.id.buttonSearch到menuActivity的按钮。这就是编好的原因。 – wzbozon 2012-02-03 14:25:16