2013-05-29 40 views
2

我使用下面的代碼獲取適配器一個ListView

ConsumersFiltersAdapter genderFilterAdapter, ageFilterAdapter, 
      lastCheckinFilterAdapter, customerTypeAdapter; 

      genderFilterListView.setAdapter(genderFilterAdapter); 
      ageFilterListView.setAdapter(ageFilterAdapter); 
      lastCheckinFilterListView.setAdapter(lastCheckinFilterAdapter); 
      customerFilterListView.setAdapter(customerTypeAdapter); 

      genderFilterListView.setOnItemClickListener(this); 
      ageFilterListView.setOnItemClickListener(this); 
      lastCheckinFilterListView.setOnItemClickListener(this); 
      customerFilterListView.setOnItemClickListener(this); 

然後我implment以下功能

@Override 
    public void onItemClick(final AdapterView<?> listView, final View view,final int position, final long id) { 
     ConsumersFiltersAdapter consumersFiltersAdapter=(ConsumersFiltersAdapter)listView.getAdapter(); 
     consumersFiltersAdapter.setSelectedIndex(position); 
    } 

,但我得到的第一行一類轉換異常

java.lang.ClassCastException: android.widget.HeaderViewListAdapter cannot be cast to com.abc.merchant.adapter.ConsumersFiltersAdapter 
+0

發佈你的logcat – Jivan

+1

你有一個單一的自定義適配器類的所有listViews? – NaserShaikh

回答

1
convertView.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        setSelectedIndex(position); 
       } 
      }); 

你可以使用上面的代碼fo這個:兩個代碼的工作原理都是相似

@Override 
    public void onItemClick(final AdapterView<?> listView, final View view,final int position, final long id) { 
     ConsumersFiltersAdapter consumersFiltersAdapter=(ConsumersFiltersAdapter)listView.getAdapter(); 
     consumersFiltersAdapter.setSelectedIndex(position); 
    }