Android 将适配器与OnClickItemListener合并

Android 将适配器与OnClickItemListener合并,android,listview,commonsware-cwac,Android,Listview,Commonsware Cwac,我正在使用Commonware合并两个ListView 请注意,两个ListView都有自己的模型 一切都进行得很顺利,除了当我想从合并的Listview中单击一个项目时,我似乎无法获得表示其相应模型的正确数据。我已经看到了这一点,虽然它没有任何完整的解决方案,我正在寻找 以下是我实现MergeAdapter的方法: @Override public void onActivityCreated(Bundle savedInstanceState) { super

我正在使用Commonware合并两个ListView

请注意,两个ListView都有自己的模型

一切都进行得很顺利,除了当我想从合并的Listview中单击一个项目时,我似乎无法获得表示其相应模型的正确数据。我已经看到了这一点,虽然它没有任何完整的解决方案,我正在寻找

以下是我实现MergeAdapter的方法:

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        // merge adapter
        mAdapter  = new MergeAdapter();

        // user list
        arrUserVanities = new ArrayList<UserVanitiesModel>();
        uva = new UserVanitiesAdapter(arrUserVanities, getActivity());
        mAdapter.addAdapter(uva);

        // user category
        arrUserCategory = new ArrayList<UserCategoriesModel>();
        uca = new UserCategoryAdapter(arrUserCategory, getActivity());
        mAdapter.addAdapter(uca);


        setListAdapter(mAdapter);
   }
我被这件事难住了。如何在合并的listview中获取相应的对象并从中获取任何数据?我正在将这些数据传递给接口侦听器

更新

我得到了两个要合并的列表视图,即UserVanitieAdapter支持的用户列表和UserCategoriesAdapter支持的用户类别

这是我在单击项目时遇到的错误:

java.lang.ClassCastException: com.example.model.usershop.UserCategoriesModel cannot be cast to com.example.model.usershop.UserVanitiesModel
如果单击了第二个listview,则使用另一种方法

java.lang.ClassCastException: com.example.model.usershop.UserVanitiesModel cannot be cast to com.example.model.usershop.UserCategoriesModel
您将调用l.getAdapter.getItemposition两次,并将其强制转换为两个不同的类。除非这些类通过继承而相关,否则根据定义,一个类将因ClassCastException而崩溃

只调用l.getAdapter.getItemposition一次。您需要根据位置或使用instanceof运算符确定要转换到哪个类。

您将调用两次l.getAdapter.getItemposition并将其转换到两个不同的类。除非这些类通过继承而相关,否则根据定义,一个类将因ClassCastException而崩溃


只调用l.getAdapter.getItemposition一次。您需要根据位置或使用instanceof操作符来确定要转换到哪个类。

即兴,您拥有的似乎很好。请完整、准确地解释什么不起作用。我已经更新了问题,添加了堆栈跟踪。即兴说,你有什么似乎很好。请完整准确地解释什么不起作用。我已经更新了添加堆栈跟踪的问题。我不太熟悉instanceof运算符。我是否必须重写库的getItem才能知道单击的项来自哪个适配器?否。instanceof是标准Java的一部分。或者,让两个模型都实现一些公共接口,转换到该接口,并在接口上调用一些方法来确定如何处理对象。我是否必须重写库的getItem才能知道单击的项来自哪个适配器?否。instanceof是标准Java的一部分。或者,让两个模型实现一些公共接口,转换到该接口,并调用接口上的某些方法来确定如何处理对象。
java.lang.ClassCastException: com.example.model.usershop.UserVanitiesModel cannot be cast to com.example.model.usershop.UserCategoriesModel