Android開発・エラー置き場

Android開発のメモやエラーなんかおいてく

*

対処法: Android カスタムダイアログ(dialog)を動的に書き換えるには?

   

Pocket

今回はカスタムダイアログの中身を動的に書き換えるやり方だよ。

 

普通にやったら(書き換えたいTextViewのidが R.id.hoge カスタムダイアログのレイアウトが R.layout.dialog の場合)

LayoutInflater inflater = LayoutInflater.from(this);

View layout = inflater.inflate(R.layout.dialog, null);

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

〜中略〜

TextView tv = (TextView)findViewById(R.id.hoge);

tv.setText("書き換えたい内容がここ");

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();

 

こんな感じでやると思うけど、これだと

tv.setText(“書き換えたい内容がここ”); の部分が

java.lang.NullPointerException になるんじゃないかな、きっと。

 

そうなった人はこれで解決。

 

解決法

LayoutInflater inflater = LayoutInflater.from(this);

View layout = inflater.inflate(R.layout.dialog, null);

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

〜中略〜

TextView tv = (TextView)layout.findViewById(R.id.hoge);

tv.setText("書き換えたい内容がここ");

AlertDialog alertDialog = alertDialogBuilder.create();

alertDialog.show();

 

TextView tv = (TextView)findViewById(R.id.hoge);

TextView tv = (TextView)layout.findViewById(R.id.hoge);

 

にしましょうね。

Pocket

Amazonの90%OFF検索しまくるアプリつくったよ。役に立ったらDLお願い。
https://play.google.com/store/apps/details?id=jp.tecco.amazondiscount

 - Alert Dialog

  関連記事

関連記事はありませんでした