2014-01-10 31 views
0

您好我正在嘗試使用MergeAdapter與我的ListView。我添加一個ArrayAdapter作爲第一個子適配器,並添加一個按鈕作爲第二個。現在,ArrayAdapter上的OnItemClick效果很好,但我無法點擊按鈕。如果我點擊它4-5次,點擊會排隊,並在我滾動列表視圖時被觸發。按鈕點擊排隊,除非滾動,否則不會被解僱

這是我的代碼看起來像 -

adapter = new TransactionAdapter(this, R.layout.transaction_list_item, 
      transactionData); 

    mergeAdapter = new MergeAdapter(); 

    loadMoreButton = new Button(this); 
    loadMoreButton.setText(getString(R.string.button_load_more)); 
    loadMoreButton.setTextColor(Color.BLACK); 
    loadMoreButton.setGravity(Gravity.CENTER); 


    loadMoreButton.setBackgroundDrawable(null); 
    loadMoreButton.setPadding(10, 10, 10, 10); 
    loadMoreButton.setFocusable(false); 
    loadMoreButton.setFocusableInTouchMode(false); 

    loadMoreButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      AppManager.getInstance().getStartCal().add(Calendar.MONTH, -1); 
      loadTransactions(); 
     } 
    }); 

    mergeAdapter.addAdapter(adapter); 
    mergeAdapter.addView(loadMoreButton); 
    listView.setAdapter(mergeAdapter); 

什麼辦法可以開火實時的點擊次數,而無需等待的ListView滾動。

+1

我建議你創建一個臨時'Adapter'類,它返回'Button'作爲唯一的'View',並嘗試在沒有'MergeAdapter'的'ListView'中使用它。我希望你會遇到同樣的問題,因此這個問題不在'MergeAdapter'中。 – CommonsWare

+0

是的,我發現相同。我也會檢查溫度適配器類。非常感謝您回答 – noob

回答

0

正如CommonsWare所建議的,我創建了第二個適配器,它只返回按鈕。這解決了這個問題。所以我想你不應該使用MergeAdapter#addView()方法來處理任何交互式視圖。而只需使用另一個適配器。

1

我有完全相同的問題,並找到一個解決方案如何這也適用於MergeAdapter#addView()。添加時必須明確啓用視圖:mMergeAdapter.addView(view, true);。這終於爲我解決了這個問題。

+0

謝謝,下次我會嘗試這個解決方案。 – noob