我有一个列表视图,我附加了一个长按一下监听器。在这个长时间点击监听器中,我向用户显示一个弹出菜单,其中包含"删除"等选项。当从该菜单中按下删除时,我需要引用触发长按钮监听器的列表项的视图,以便我可以删除该列表项。我需要在内部点击监听器上的引用。我怎么能这样做,请帮忙。这是我的代码。
listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
CharSequence options[]={"Delete"};
AlertDialog.Builder symbolOptions=new Builder(context);
symbolOptions.setItems(options, new OnClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
CharSequence options[]={"Delete"};
AlertDialog.Builder symbolOptions=new Builder(context);
symbolOptions.setItems(options, new OnClickListener() {
public void onClick(DialogInterface thisDialog, int which) {
//TODO Auto-generated method stub
switch (which) {
case 0:
//Reference to the list item which initiated the long click listener
// Delete that list item
break;
default:
thisDialog.dismiss();
break;
}
答案 0 :(得分:0)
你可以这样做......
将列表项的所有id放在ArrayList中。说....
ArrayList<Integer> itemids = new ArrayList<Integer>();
然后在onItemLongClick ...
int selected_item_id = itemids.get(position);
现在您知道所点击项目的ID。希望它有所帮助。
答案 1 :(得分:0)
通过将位置和项目名称保存为该类的全局变量,然后从内部函数访问它们来解决问题。我不知道这是否正确,但我认为这是一个非常常见的特征,应该有更好的方法来做到这一点。现在,我必须坚持下去。