3

アプリケーションで setText() メソッドが null を返すのはなぜですか?

public class GetValue extends Activity {
    char letter = 'g';
    int ascii = letter;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView textView = (TextView)findViewById(R.id.txt_1);
            textView.setText(ascii);
    }
}

どんなテキストを入力しても問題ありません。とにかくクラッシュします。setText() が null を返し続けるのはなぜですか?

前もって感謝します

解決策:エラーは xml ファイルにありました。私が書いた: android:text="@+id/txt_1" それが言うべきとき: android:id="@+id/txt_1"

すべての回答とコメントに感謝します!

4

3 に答える 3

9

パラメータとして整数を setText に渡そうとしましたが、これはリソース ID であると想定されています。計算されたテキストを表示するには、文字列として渡します。textView.setText("g");

編集済み: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">
    <TextView
        android:id="@+id/txt_1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="myTextView"/>
</LinearLayout>

プロジェクトをクリーンアップしてみてください (Project->Clean in Eclipse)。最近、最後の ADT バージョンでの R 生成に問題があります。

于 2011-03-15T21:56:26.377 に答える
5

これを試して:

textView.setText(Integer.toString(ascii)); 

また、レイアウト xml に TextView txt_1 があることを確認してください

于 2011-03-15T21:56:35.800 に答える