我有一个列表视图,我附加了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);
}
答案 0 :(得分:0)
我认为: 您的项目包含EditText或Button,它可以从项目或listView中自动获得焦点。 你需要setFocus(false)或listView.setItemsCanFocus(false); 让项目视图无法成为焦点。
答案 1 :(得分:0)
找到问题的解决方案,
我在问
adapterView.getChildAt(position)
如果您想要获取数据,
这不是正确的方法。
正确的方法是致电
adapterView.getItemAtPosition(position)
返回用于填充listView的对象下面。