androidのlistViewからアイテムを削除し、その変更を通知する必要があります。私はStackOverflowからいくつかの解決策を得ていますが、listViewからアイテムを削除してアンドロイドの変更を通知するクエリがあります。
このコードの部分は、DAOクラスからリストビューと関数をどのように初期化したかを示しています。
listvcard=(ListView) rootView.findViewById(R.id.listofvcard);
DAO dao = new DAO(getActivity());
vcardadapter adapter = new vcardadapter(getActivity(), dao.getUser());
listvcard.setAdapter(adapter);
return rootView;
}
private class vcardadapter extends BaseAdapter {
private Context context;
private List<VcardVO> listvcardVO;
private LayoutInflater inflater;
public vcardadapter(Context c, List<VcardVO> list) {
// TODO Auto-generated constructor stub
this.context = c;
this.listvcardVO = list;
inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
=========================================== =================
このコードの部分は、listViewからItemを削除する方法を示していますALERTレイアウト。
h.delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
deletepopup();
}
private void deletepopup() {
// TODO Auto-generated method stub
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
alert.setTitle("Delete this vCard?");
alert.setCancelable(false);
//alert.setIcon(R.drawable.vcardicon2);
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
ArrayAdapter<String> myAdapter = (ArrayAdapter<String>)listvcard.getAdapter();
myAdapter.remove(myAdapter.getItem(position));
myAdapter.notifyDataSetChanged();
}
});
AlertDialog dialog = alert.create();
dialog.show();
}
});
私はライン"ArrayAdapter<String> myAdapter = (ArrayAdapter<String>)listvcard.getAdapter();"
でエラーを取得していますこれは、返信してください
を "vcardadapterがarrayadapterにキャストすることはできない" と言います!私はこの問題を3日間から解決しようとしています。
「アダプタ」上記で宣言したものは、削除ボタンのonClickListenerにはアクセスできません。 メソッド「removeItem」を作成しました –
グローバルに宣言します –
どのようにグローバルに宣言できますかpublic宣言すると「エラー」と表示されます。 –