私はこの問題について多くのことを読みましたが、自分のケースを機能させることができません。
XML レイアウト ファイルで初期テキストを含む TextView 要素を定義しました。
次のようにして、メイン アクティビティ クラス (FragmentActivity) から変更しようとすると、次のようになります。
TextView domainText = (TextView) view.findViewById(R.id.domainText);
domainText.setText("test");
それは完全に機能します。
しかし、メインのアクティビティ クラス (FragmentActivity) から起動された DialogFragment からこの TextView 要素を変更しようとすると、次のようになります。
public class QueryDomainDialogFragment extends DialogFragment{
...
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Set the dialog title
builder.setTitle(R.string.queryTypeDialogTitle)
.setSingleChoiceItems(R.array.queryDomains, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which){
ListView lw = ((AlertDialog)dialog).getListView();
Object selectedDomain = lw.getAdapter().getItem(lw.getCheckedItemPosition());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.activity_search, null);
TextView domainText = (TextView) view.findViewById(R.id.domainText);
domainText.setText("test2");
}
})
何も起こりません。
どうすればいいですか?私はそれを間違った方法でやっていますか?DialogFragment から要素を変更することはできませんか? 一種のコールバックを実装する必要がありますか?
その場合、TextView などの要素を DialogFragment から変更できない理由を知りたいです。
前もって感謝します。