所以我正在扩展ListPreference以达到我需要的效果。
我想在我的对话框中有一个titleView,一个messageView,然后是listView。
我重写了onCreateDialogView()方法以便执行此操作,并且能够通过创建textview并使用以下代码将其添加到视图中来成功显示messageView:
@Override
protected View onCreateDialogView() {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ListView lv = (ListView) inflater.inflate(R.layout.dialog_layout, null);
_messageView= (TextView) inflater.inflate(R.layout.dialog_header, null);
_messageView.setText("Hello World");
lv.addHeaderView(_messageView);
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(), R.layout.dialog_list_choice, getEntries());
lv.setAdapter(adapter);
return lv;
}
现在,当我为创建的TextView分配变量_messageView并设置文本时,它可以正常工作。 但是,当我单击首选项时,我希望对话框的messageView文本更改。 我使用以下代码执行此操作:
public void showWithCode(String code){
if (_messageView != null) {
_messageView.setText(code);
}
showDialog(null);
}
对话框显示,但_messageView始终为空,所以我的消息无法反映我的行为!
所以我的问题是,我之前如何分配它,但是当我需要它时它是空的?