特定Textview上的Android App Null指针

时间:2012-05-02 03:50:30

标签: android android-layout

通常,空指针异常似乎与视图相关 - 其​​中错误的布局是针对性的。

我认为这是不同的。我在布局中有四个textview,一个返回null,其余工作正常。这是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="hello" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="stringello2" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="ip"
        android.id="@+id/iptest"
    />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="hostname" 
        android:id="@+id/hostname"
    />

</LinearLayout>

这是测试代码:

public class MainActivity extends Activity
{
    /** Called when the activity is first created. */

    protected TextView text;
    protected TextView ip;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        text = (TextView) findViewById(R.id.text);
        text.setText("goodbye");
        text = (TextView) findViewById(R.id.hostname);
        text.setText("hostname flibble");
    //  text = (TextView) findViewById(R.id.text2);
        text = (TextView) findViewById(R.id.iptest);
        text.setText("ip flibble");
    }
}

如果我将评论切换到其他文本视图,它可以正常工作。如果我以iptest为目标,则返回null并引发异常。

任何想法为什么?所有四个都显示在gen中,如果我删除gen并重新编译,它们都会重新出现。

2 个答案:

答案 0 :(得分:5)

标记

中的

 <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="ip"
        android.id="@+id/iptest"
    />

你选择了。(点)而不是 :(冒号)

 android.id="@+id/iptest"

承担这样的责任

 android:id="@+id/iptest"

此外,请定期清理您的项目。

答案 1 :(得分:1)

你的R类没有持有iptest参考。 android.id =“@ + id / iptest”是错误的。它应该是android:id