0

通常、null ポインターの例外はビューに関連しているように見えます - 間違ったレイアウトが対象とされています。

これは違うと思います。レイアウトに 4 つのテキストビューがあり、1 つが 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 が返され、例外が発生します。

理由はありますか?4つすべてが表示されgen、削除genして再コンパイルするとすべて再表示されます。

4

2 に答える 2

5

あなたのTextViewタグで

 <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"

さらに、プロジェクトを定期的にクリーニングしてください。

于 2012-05-02T03:54:25.827 に答える
1

あなたの R クラスは iptest リファレンスを保持していません。android.id="@+id/iptest" が間違っています。android:id である必要があります

于 2012-05-02T03:57:13.170 に答える