2012-03-22 13 views
1

私にはonItemLongClickListenerが付いているリストビューがあります。すべて正常に機能しますが、リストにアイテムを多すぎる(たとえば100)追加すると、ビューの一部がリスナーを失います。問題が何であるか分からず、私も問題をデバッグしてもそれを理解することはできません。Android ListViewのアイテムが多すぎる場合は、リスナーが緩くなります

例外がスローされることはなく、ただ機能しなくなります。

リストからすべてを削除して追加すると、多くのアイテムに追加しない限り正常に動作します。

メモリの問題ですか?

私はどこでも検索しましたが、運はありません。

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);   

} 
+1

アダプターで何か特別なことをしていますか?そこにハイジャックイベント?あまりにも多くのアイテムを追加しても問題ありません。私はそれが起こっている理由を考えることができません。 –

+0

アダプターには何も気にならず、ビューを膨らませて値をアイテムに割り当てるだけです。 – Mayank

答えて

0

は、私はあなたが下にデータを取得するために探している場合は、それを行うには正しい方法ではありませんどの

adapterView.getChildAt(position) 

を求めていた、

正しい方法を呼び出すことです、問題に

を解決策を見つけました

adapterView.getItemAtPosition(position) 

listViewにデータを挿入するために使用されたオブジェクトを返します。

0

私は思う: あなたのアイテムはアイテムまたはリストビューから自動取得フォーカスをするVIEのEditTextまたはボタンが含まれています。 あなたはsetFocus(false)またはlistView.setItemsCanFocus(false)する必要があります。 アイテムビューでフォーカスを取得できないようにします。

+0

いいえ、listItemにはEditTextまたはButtonが含まれていないため、TextViewとImageViewのみがあります。 – Mayank

関連する問題