リストビューが表示されているダイアログがあります。リストコンテキストメニューのアイテムを長押しするとポップアップが表示されます。コンテキストメニューで削除を押すと、リストビューの対応するアイテムが削除されます。ここに私がこれまでに書いた私のコードがあります...
public class ViewContacts extends Activity {
List<String> contacts;
SharedPreferences prefs;
SharedPreferences.Editor editor;
ArrayAdapter<String> adapter;
Dialog dialog;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
contacts = new ArrayList<String>();
dialog = new Dialog(ViewContacts.this);
dialog.setTitle("My Contacts");
dialog.setContentView(R.layout.activity_mycontacts);
dialog.setCancelable(true);
dialog.show();
contacts.add("Abc");
contacts.add("xyx");
contacts.add("klm");
lv =(ListView)dialog.findViewById(R.id.lv);
adapter =new ArrayAdapter<String>(this,R.layout.row,R.id.contacts,contacts);
lv.setAdapter(adapter);
registerForContextMenu(lv);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater =getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo info =(AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.del_menu:
contacts.remove(adapter.getItem(info.position));
adapter.notifyDataSetChanged();
return true;
case R.id.can_menu:
return true;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
menu_list.xml コード:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/del_menu"
android:title="Delete">
</item>
<item android:id="@+id/can_menu"
android:title="Cancel">
</item>
</menu>
私のコードは何もしていません.何が問題なのですか?リストビューからアイテムを削除するこのアプローチに対する提案または代替手段はありますか?