对 ListView 项执行操作 (add/edit/delete)
Implementing actions (add/edit/delete) on ListView items
我对 Android 有点陌生,因为我只做过一些基本的应用程序,但我对 Java 更熟悉。我一直在开发一个应用程序,它应该为 LoginActivity 提供两个属性,这些属性生成一个 Pair 连接(IP 地址 和 port) 在屏幕的顶部和一个 ListView 所有已知的连接(以前偶尔使用过)就在按钮 "Connect".
Snippet
我的问题是,当手指在 ListView 中的某个项目上稍长一些时,如何实现 add/edit/delete 等 等操作?如何为已知连接的modification/deletion制作一些菜单?
这是我已经为 ListView 获得的代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.list_view) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()) {
case R.id.edit:
//implement here
return true;
case R.id.delete:
//implement here
default:
return super.onContextItemSelected(item);
}
}
也许您忘记了将上下文菜单注册到列表视图?
registerForContextMenu(lv);
编辑
好的,我明白了。也许这会有所帮助:
case R.id.delete:
int index = info.position;
listView.remove(index);
listViewAdapter.notifyDataSetChanged();
我对 Android 有点陌生,因为我只做过一些基本的应用程序,但我对 Java 更熟悉。我一直在开发一个应用程序,它应该为 LoginActivity 提供两个属性,这些属性生成一个 Pair 连接(IP 地址 和 port) 在屏幕的顶部和一个 ListView 所有已知的连接(以前偶尔使用过)就在按钮 "Connect".
Snippet
我的问题是,当手指在 ListView 中的某个项目上稍长一些时,如何实现 add/edit/delete 等 等操作?如何为已知连接的modification/deletion制作一些菜单?
这是我已经为 ListView 获得的代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId()==R.id.list_view) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()) {
case R.id.edit:
//implement here
return true;
case R.id.delete:
//implement here
default:
return super.onContextItemSelected(item);
}
}
也许您忘记了将上下文菜单注册到列表视图?
registerForContextMenu(lv);
编辑
好的,我明白了。也许这会有所帮助:
case R.id.delete:
int index = info.position;
listView.remove(index);
listViewAdapter.notifyDataSetChanged();