Deprecated: Non-static method wp_meta_robots_plugin::meta_robots_addcolumn() should not be called statically in /home/sekai1blog/tecc0.com/public_html/android/wp-includes/class-wp-hook.php on line 286
対処法: Android カスタムダイアログ(dialog)を動的に書き換えるには? | Android開発・エラー置き場
Deprecated: Non-static method wp_meta_robots_plugin::add_meta_robots_tag() should not be called statically in /home/sekai1blog/tecc0.com/public_html/android/wp-includes/class-wp-hook.php on line 286

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

Android開発・エラー置き場

Alert Dialog

対処法: 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

-Alert Dialog

Copyright© Android開発・エラー置き場 , 2019 All Rights Reserved Powered by STINGER.