我已经阅读了很多关于这个问题的内容,但我没有让我的案例工作。
我在 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 修改元素吗?我应该实现一种回调吗?
我想知道为什么不能从 DialogFragment 修改 TextView 等元素,如果是这样的话。
提前致谢。