java – Android:Listview long hold上下文菜单问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Android:Listview long hold上下文菜单问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2665字,纯文字阅读大概需要4分钟。
内容图文
![java – Android:Listview long hold上下文菜单问题](/upload/InfoBanner/zyjiaocheng/725/494cac2204634ed59eb0506346e6604d.jpg)
我想在长时间持有listview条目并显示各种选项后打开上下文菜单.
但是,我无法长时间保持不做/调用任何东西.
这是我用来调用上下文菜单的代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuItem delete = menu.add("delete");
MenuItem edit = menu.add("edit");
delete.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
edit.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
}
我也试过了,但无济于事:
@Override
public void onCreateContextMenu(ContextMenu menu,
View v, ContextMenuInfo menuInfo) {
menu.add(0, 1, 0, "Edit");
menu.add(0, 2, 1, "Rename");
menu.add(0, 3, 2, "Delete");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
if(item.getTitle().equals("Edit")) {
//Edit code
} else if(item.getTitle().equals("Rename")) {
//Rename code
} else if(item.getTitle().equals("Delete")) {
//Delete code
}
return true;
};
MainActivity代码(仅限相关部分):
public class MainActivity extends Activity {
private List<CountElement> myElements = new ArrayList<CountElement>();
ListView list;
ArrayAdapter<CountElement> adapter;
/*
Users enters needed listview items, code not shown here. It works fine however -
all needed elements are displayed correctly.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter = new MyListAdapter();
list = (ListView) findViewById(R.id.listView1);
list.setAdapter(adapter);
registerForContextMenu(list);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuItem delete = menu.add("delete");
MenuItem edit = menu.add("edit");
delete.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
edit.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
}
private class MyListAdapter extends ArrayAdapter<CountElement> {
//Custom adapter code here
}
}
任何帮助是极大的赞赏.谢谢!
解决方法:
好吧,我能够搞清楚.在我的自定义listAdapter中,我在listView上添加了一个setOnItemLongClickListener.此setOnItemLongClickListener具有显示我所需选项的警报.如此:
list.setOnItemLongClickListener(new OnItemLongClickListener() { //list is my listView
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
final int pos, long id) {
//Whatever you wanna do
}
});
内容总结
以上是互联网集市为您收集整理的java – Android:Listview long hold上下文菜单问题全部内容,希望文章能够帮你解决java – Android:Listview long hold上下文菜单问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。