获取ListView的适配器

3
我正在使用以下代码。
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);

然后我实现了以下函数

@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

1
你是否有一个单独的自定义适配器类来处理所有的ListView? - NaserShaikh
1个回答

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

您可以使用上面的代码来实现这个功能:两个代码的作用类似。
@Override
    public void onItemClick(final AdapterView<?> listView, final View view,final int position, final long id) {
        ConsumersFiltersAdapter consumersFiltersAdapter=(ConsumersFiltersAdapter)listView.getAdapter();
        consumersFiltersAdapter.setSelectedIndex(position);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接