首页 文章

RecyclerView项目元素(imageview)单击

提问于
浏览
-1

我使用RecyclerView创建了一个自定义适配器 . 我在回收站视图的每个项目中都有文本视图和图像视图 . 我希望如果我单击图像视图,我想打开警告对话框,如果我点击回收器视图项的其他部分,我想打开另一个活动 . 我为图像视图的点击事件编写了此代码:

这是我的适配器的一部分:
@Override public void onBindViewHolder(ViewHolder holder,int position){final gelen_konum_bilgileri_list list = konum_bilgileri_listesi.get(position);

final Double longitude=list.getLongitude();
    final Double latitude=list.getLatitude();
    holder.longitude.setText(context.getString(R.string.boylam) + longitude);
    holder.latitude.setText(context.getString(R.string.enlem)+latitude);

    holder.map_image_view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Utils.address_alert_dialog(context,longitude,latitude);
        }
    });
}

这是回收者视图点击事件:

recyclerView.addOnItemTouchListener(new RecyclerViewItemClickListener(getActivity(), recyclerView, new RecyclerViewItemClickListener.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {

                Bundle bundle=new Bundle();
                bundle.putDouble("longitude",secilen_liste.get(position).getLongitude());
                bundle.putDouble("latitude",secilen_liste.get(position).getLatitude());
                bundle.putLong("tarih",secilen_liste.get(position).getTimeMills());
                bundle.putString("isim",secilen_liste.get(position).getKisi_konum());

                Fragment  fragment= new MapsFragment();
                fragment.setArguments(bundle);
                FragmentManager fragmentManager=getActivity().getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.container_content_drawer,fragment)
                        .addToBackStack(null).commit();



        }

但是如果我单击图像视图,则会打开活动(关于警报对话框没有任何反应) . 我该怎么做我想做的事情?

1 回答

  • 0

    请确保您的回收商项目XML代码中有可点击的Imageview .

    您可以简单地在viewholder中定义您的recyclerview项目,而不是BindViewHolder,请查看以下示例代码以供参考

    public class ViewHolder extends RecyclerView.ViewHolder {
    
            ImageView map_image_view;
    
            public ViewHolder(View itemView) {
                super(itemView);
    //your find view by id here
                map_image_view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //add your image view click code here
    
                    }
                });
    
                itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //add whole item click code here
    
                    }
                });
            }
        }
    

    有关回收商项目的更多信息,请访问link

相关问题