我有一个附加了onItemLongClickListener
的列表视图。一切都很好,但当我向列表中添加太多(例如100个)项目时,一些视图会失去侦听器。不确定是什么问题,我也调试了这个问题,但仍然无法解决。
抛出也没有异常,只是停止了工作。
然后,如果我从列表中删除所有内容并开始添加内容,只要我不添加太多项目,它就可以正常工作。
是内存问题吗?
我到处找,但没有找到。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_frame);
// Set text view for orderTotal
orderTotal = (TextView) findViewById(R.id.orderTotal);
orderTotal.setText("0.00");
// List view from layout
itemsListView = (ListView) this.findViewById(R.id.item_list);
// Current order to be consistent throughout activities.
currentOrder = ((OrderIt)this.getApplication()).getCurrentOrder();
databaseCategories = (ArrayList<Category>) this.getIntent().getExtras()
.getSerializable("databaseCategories");
// List of items already in order.
itemsListView.setAdapter(new ItemAdapter(this, R.layout.list_item,
currentOrder.getItems()));
itemsListView.setOnItemLongClickListener(this);
this.registerForContextMenu(itemsListView);
// Gridview from layout
gridView = (GridView) findViewById(R.id.item_grid);
ArrayList<Item> items = getItems();
gridView.setAdapter(new ImageAdapter(this, items));
// Set click adapter to grid view items
gridView.setOnItemClickListener(this);
gridView.setOnItemLongClickListener(this);
}
我认为:您的项目包含EditText或Button,可从项目或列表视图中自动获取焦点。您需要设置焦点(false)或listView.setItemsCanFocus(false);让项目视图不能占据焦点。
找到了问题的解决方案,
我在问
adapterView.getChildAt(position)
如果你想获得下面的数据,,这不是正确的方法
正确的方法是呼叫
adapterView.getItemAtPosition(position)
它返回用于填充listView的底层对象。