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
如果我评论关于一个按钮的一切,它工作正常。
答
此致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
你可以发布你的XML布局呢? – 2012-02-03 14:10:34
你的代码无法找到你的按钮,所以返回null。你可以发布你的菜单布局xml吗? – mcnicholls 2012-02-03 14:14:47
谢谢,伙计们。真的,我需要仔细查看xml布局。 – wzbozon 2012-02-03 14:26:15