RecyclerView项目元素(imageview)点击

时间:2018-10-23 15:30:20

标签: android android-recyclerview android-imageview android-alertdialog custom-adapter

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

这是我的适配器的一部分:
    @Override     public void onBindViewHolder(ViewHolder持有人,int位置){         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 :(得分:0)

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

代替BindViewHolder,您可以简单地定义您的recyclerview项目,然后在视口中单击并检查以下示例代码以供参考

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