我有一個包含按鈕和ListView的片段類,當單擊該按鈕時,DialogFragment將出現在片段類的頂部。它將採取用戶輸入並將其添加到數據庫中,一切正常,但listview不更新,我知道我需要調用adapter.notifyDataChange()我會寫psudeo代碼。Android - ListView不刷新
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_notes, container, false);
add = (Button) view.findViewById(R.id.button1);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//New DialogFragment show.dialog
}
});
filllist(view);
return view;
}
另一類,創造我DialogFragment
public Dialog onCreateDialog(Bundle savedInstanceState){
final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity());
final View view = getActivity().getLayoutInflater().inflate(R.layout.custom_layout, null);
build.setView(view);
build.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final String text = ((EditText) view.findViewById(R.id.randomtext)).getText().toString();
//Call insert method of database helper. pass user input
//dismiss
adapter.notifyDataSetChanged();
}
});
build.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismiss();
}
});
return dialog.create();
}
當用戶完成在EDITTEXT領域灌裝機在數據庫中添加插入數據或解散dialogFragment,但它不更新/刷新列表視圖中,我可以在哪裏調用notifyDataSetChanged();
好吧,我需要創建一個新的方法調用mAdapter = new MyAdapter(context,R.layout.item_listview_layout,mData);然後adapter.notifyDataSetChanged。作爲一個片段,我可以在onActivityCreated中調用這個方法嗎? – Mark 2015-03-18 23:56:00
在我可以回答這個問題之前,你可以發佈你的DialogFragment中的'adapter'變量是如何初始化的嗎? – Mikhail 2015-03-19 00:03:25
適配器只是我的一個listview的自定義佈局,並映射出在TextView中獲得的數據,但我通過CustomAdapter適配器初始化它;製作一個CustomAdapter的實例。我很可能需要在我的fragment類中調用notifydatachange onActivityCreated而不是onCreateView – Mark 2015-03-19 00:05:26