###Dialogfragment内でString.xmlの文字列取得が取得できません・・・
お世話になっております。今回も迷路に迷い込んでいます。
Activity内で、できていたString.xmlの文字列を取得する方法がDialogfragment内
内では通用しません。getPackageName()
を使おうとすると赤くなってしまうのです。
一応試したこととして
・getPackageName()
の部分に直接パッケージネームを入れる
・Activity内でDialogfragmentのビューを取得し、String.xmlを取得しようとする入れようとする
などをやりました。
一番目の対策はパッケージネームが赤くなりました。
二番目の対策はアプリは動いたのですが、文字列が取得できませんでした。
二番目の対策をつきつめれば改善できるかなと思いましたが、その前に
・getPackageName()
をDialogfragment内で使えるか?
・またできないとしたら、Dialogfragment内におけるgetPackageName()
の代替的なメソッドはあるのか?
この二つの点を知りたくて投稿しました。(そっちのほうが遥かに楽だし、可読性もあがるものですから・・・)
下に二番目の対策前のコードを載せておきます。
lang
1import・・・ 2 3public class LogFragment extends DialogFragment { 4 Dialog logDialog; 5 6 public LogFragment() { 7 // Required empty public constructor 8 } 9 10 @Override 11 public Dialog onCreateDialog(Bundle savedInstanceState) { 12 logDialog=super.onCreateDialog(savedInstanceState); 13 return logDialog; 14 } 15 16 @Override 17 public View onCreateView(LayoutInflater i, ViewGroup c, Bundle savedInstanceState){ 18 logDialog.setContentView(R.layout.fragment_log); 19 20 View content = i.inflate(R.layout.fragment_log, null); 21 //問題の部分 22 TextView log=LogFragment.content.findViewById(R.id.text_log_content); 23 Resources logRes=getResources(); 24 int logId = getResources().getIdentifier("message" + FirstActivity.number, 25 "string", getPackageName());//ここのgetPackageName()が赤くなる。 26 //FirstActivity.numberは他のActivityで動的に変化する変数を取得している 27 //これで動的なString.xmlの文字列リソースを実現したい。 28 log.setText(logRes.getString(logId)); 29 30略-- 31 return content; 32 } 33 34略-- 35}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/23 11:36 編集