Android 将列表视图中的项目映射到单击次数

Android 将列表视图中的项目映射到单击次数,android,listview,Android,Listview,我有一个用自定义阵列适配器填充的ListView。我想获取ListView中每个项目的总点击次数。如何映射ListView项目id和多个项目在该项目上的点击次数?使用此代码。。准确的为您硬编码整个代码:p HashMap<Integer,Integer> map_positions_and_count = new HashMap<>(); listView.setOnItemClickListener(new AdapterView.OnItemCli

我有一个用自定义阵列适配器填充的ListView。我想获取ListView中每个项目的总点击次数。如何映射ListView项目id和多个项目在该项目上的点击次数?

使用此代码。。准确的为您硬编码整个代码:p

    HashMap<Integer,Integer> map_positions_and_count = new HashMap<>();

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {



            for (int i = 0; i<listView.getAdapter().getCount()-1; i++)
            {

                if (i == position)
                {
                    if (map_positions_and_count .get(position) !=null)
                    {
                        map_positions_and_count .put(position,map_positions_and_count .get(position)+1);


                    }
                    else {
                        map_positions_and_count .put(position,1);


                    }



                }

            }
           // map.put(position,)


        }
    });
HashMap\u位置和计数=新HashMap();
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){

对于(int i=0;i你可以在你的活动中尝试这一点

    ArrayList<Integer> arrayList=new ArrayList<>();//make this as global

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if(arrayList.get(position)!=null) {
                int a = arrayList.get(position);
                arrayList.set(position, a+1);
            }
            else
                arrayList.set(position,1);
       }
    });
ArrayList ArrayList=new ArrayList();//将其设置为全局
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(arrayList.get(position)!=null){
int a=arrayList.get(位置);
arrayList.set(位置,a+1);
}
其他的
arrayList.set(位置1);
}
});
试试这个代码->

        final HashMap<Integer, Integer> listItemCount = new HashMap<Integer, Integer>();

        //Set an onItemClickListener
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                if (listItemCount.containsKey(position)){
                    listItemCount.put(position, listItemCount.get(position)+1);
                }else {
                    listItemCount.put(position, 1);
                }

            }
        });
final HashMap listItemCount=new HashMap();
//设置一个侦听器
mListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(listItemCount.containsKey(位置)){
listItemCount.put(位置,listItemCount.get(位置)+1);
}否则{
listItemCount.put(位置1);
}
}
});

您可以在arraylist中存储
列表视图
上的项目位置设置
OnItemClickListener
,并在
onItemClick
方法中更新数据模型,然后调用
适配器35; DataSnotifyetChanged