我正在构建一个由3个标签组成的标签布局应用。两个选项卡工作正常,第三个工作正常,直到我实现了一个switch-case,可能是无关的,在运行程序时它只是在尝试访问模拟器中的选项卡时出错。通常这似乎是一个xml问题
然而,我的xml似乎一尘不染,我确实注意到一个指向模式的黄色标记,它不会消失,我试图忽略等等。更多挖掘表明可能是因为模式网站已关闭,我试图访问该网站,不能这样也许它再次下降???
无论如何,我想知道这是不是导致我的问题。似乎不太可能,因为其他两个选项卡的其他两个活动类工作正常,只是这个没有。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:text="" android:id="@+id/etInput"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<TextView android:id="@+id/textView1" android:text="Gravity"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_weight="50" android:gravity="center" />
<TextView android:id="@+id/textView2" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="Style"
android:layout_weight="50" android:gravity="center" />
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<RadioGroup android:id="@+id/rgGrav" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="50">
<RadioButton android:text="Left" android:id="@+id/rbLeft"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<RadioButton android:text="Centre" android:id="@+id/rbCentre"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<RadioButton android:text="Right" android:id="@+id/rbRight"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
</RadioGroup>
<RadioGroup android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="50">
<RadioButton android:text="Normal" android:id="@+id/rbNormal"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<RadioButton android:text="Bold" android:id="@+id/rbBold"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
<RadioButton android:text="Italics" android:id="@+id/rbItalics"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</RadioGroup>
</LinearLayout>
<TextView android:textSize="20dp" android:text="Enter some text and click"
android:id="@+id/tvGetInput" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center" />
<Button android:layout_height="wrap_content" android:text="Ok" android:id="@+id/btnOK" android:layout_width="fill_parent"></Button>
</LinearLayout>
logcat copypasta(第一次这样做,我不认为我做得对)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): FATAL EXCEPTION: main
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.b00517566.helloworldplus/com.b00517566.helloworldplus.RadioBtnsTab}: java.lang.NullPointerException
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.widget.TabHost.setCurrentTab(TabHost.java:323)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.view.View.performClick(View.java:2408)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.view.View$PerformClick.run(View.java:8816)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.os.Handler.handleCallback(Handler.java:587)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.os.Handler.dispatchMessage(Handler.java:92)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.os.Looper.loop(Looper.java:123)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at java.lang.reflect.Method.invoke(Method.java:521)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at dalvik.system.NativeStart.main(Native Method)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): Caused by: java.lang.NullPointerException
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at com.b00517566.helloworldplus.RadioBtnsTab.onCreate(RadioBtnsTab.java:24)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-23 20:45:09.716: ERROR/AndroidRuntime(2951): ... 18 more
编辑3
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gravOne = (RadioGroup) findViewById(R.id.rgGrav);
gravOne.setOnCheckedChangeListener(this);
// textview = new TextView(this);
//textview.setText("This is the Radio Buttons tab");
//setContentView(textview);
setContentView(R.layout.radiobtns_tab);
textOutput = (TextView) findViewById(R.id.tvGetInput);
getInput = (EditText) findViewById(R.id.etInput);
Button ok =(Button) findViewById(R.id.btnOK);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
textOutput.setText(getInput.getText());
}
});
}
第24行gravOne.setOnCheckedChangeListener(this);
答案 0 :(得分:3)
您的XML文件似乎编译得很好。不要担心这个警告,它是无害的known issue。你可以在关闭力时发布logcat输出吗?
好的,表示Caused by: java.lang.NullPointerException
的堆栈跟踪部分指向您需要查看的位置。您可以发布onCreate
课程的RadioBtnsTab
方法,以及第24行吗?这就是问题所在。
问题是,你永远不会打电话给setContentView(R.layout.yourTabLayout)
。这就是gravOne
为空的原因。尝试设置内容视图,看看是否有效。