0

Androidアプリケーションでダイアログを表示したいのですが、レイアウト内の特定のTextViewで実行時にコンテンツを設定する必要があります。

ダイアログ自体を表示することはまったく問題ありませんが、TextView.setText(String)を介してTextViewsにアクセスすると、アプリケーションがクラッシュします。

これは私がこれまでに得たものです:

dialog = new Dialog(this);

dialog.setContentView(R.layout.dialog);
dialog.setTitle("my dialog");

dialog.show();

TextView tv;
tv = (TextView) findViewById(R.id.title);
tv.setText("bkjadsjbk");

これは最後の3行がなくても問題なく機能しますが、TextViewなどを使用してそのコードを実行するとアプリケーションがクラッシュします。

これを正しくする方法はありますか?

4

3 に答える 3

1

あなたはあなたを呼んfindViewById()でいますActivity。あなたDialogは持っていTextViewsます。を呼び出しfindViewById()Dialogください、そうすればあなたはより良い運を持っているかもしれません。

于 2010-06-22T17:05:47.903 に答える
1

エラーログを投稿していただければ幸いです。

これは、ダイアログが開かれる実際のレイアウトファイルのテキストビューに対応しているために発生していると思います。そのため、nullポインタ例外が発生する可能性があります。

使用しているダイアログレイアウトにあるビューを検索するように明示的に指示するには、テキストビューに対してこれを実行します。

TextView tv = (TextView) dialog.findViewById(R.id.title);
tv.setText("your text...");

これが機能しない場合は、エラーログを投稿してください。

于 2010-06-22T17:18:53.127 に答える
0

変化する

TextView tv = (TextView) dialog.findViewById(R.id.title);
tv.setText("your text...");

final TextView tv = (TextView) dialog.findViewById(R.id.title);
    tv.setText("your text...");
于 2015-10-12T18:59:31.453 に答える