嗨我有一个列表视图显示一个arraylist,当点击一个项目时,它被添加到另一个arraylist并显示在另一个活动中.我的问题是什么?我希望如果我触摸一次的项目(例如狗)被添加到第二个活动中,它就会显示出来.但如果我要触摸该项目(狗)不再添加.
我们会说我想检查它是否存在,而不是添加.
我试过了,但没有成功.
if (page2 == null)
{
page2 = (ListView) LayoutInflater.from(Local_mostrar_bebidaActivity.this).inflate(R.layout.page_two_viewpager_listview, null);
page2.setAdapter(adapterlistvMenuVINOSespumosos);
page2.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (MiPedidoActivity.itemsListVMiPedido.contains( position)){}
else
MiPedidoActivity.itemsListVMiPedido.add(itemsListVMenuVINOSespumosos.get(position));
}});
}
page = page2;
break;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jas*_*n C 18
你有:
if (MiPedidoActivity.itemsListVMiPedido.contains( position)){}
else
MiPedidoActivity.itemsListVMiPedido.add(itemsListVMenuVINOSespumosos.get(position));
Run Code Online (Sandbox Code Playgroud)
您正在检查是否itemsListVMiPedido包含整数position,但是您要添加itemsListVMenuVINOSespumosos.get(position)到列表中.您需要检查列表是否包含它们的项目,而不是索引(想想它与您尝试做的完全一样:"如果列表已包含项目,请不要将项目添加到列表中.)您可能意味着这样的事情(我只是由Item例如,使用任何类的对象):
Item item = itemsListVMenuVINOSespumosos.get(position);
if (MiPedidoActivity.itemsListVMiPedido.contains(item)) { // <- look for item!
// ... item already in list
} else {
MiPedidoActivity.itemsListVMiPedido.add(item);
}
Run Code Online (Sandbox Code Playgroud)
顺便提一下,作为建议,如果您的项目类已经equals()并且已hashCode()正确实施,请考虑a LinkedHashSet(这将保留插入顺序但不允许重复).还有其他Set实现也可能有用(例如,TreeSet如果您的项目实现Comparable),具体取决于您的订购/排序要求.
| 归档时间: |
|
| 查看次数: |
51127 次 |
| 最近记录: |