Android No Grammar约束Droid Schema网站关闭

时间:2011-10-23 20:28:19

标签: android xml layout tabs

我正在构建一个由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);

1 个答案:

答案 0 :(得分:3)

您的XML文件似乎编译得很好。不要担心这个警告,它是无害的known issue。你可以在关闭力时发布logcat输出吗?

好的,表示Caused by: java.lang.NullPointerException的堆栈跟踪部分指向您需要查看的位置。您可以发布onCreate课程的RadioBtnsTab方法,以及第24行吗?这就是问题所在。

问题是,你永远不会打电话给setContentView(R.layout.yourTabLayout)。这就是gravOne为空的原因。尝试设置内容视图,看看是否有效。