获取价值并关闭与 recyclerview 和自定义适配器的对话框

Get Value and close dialog with recycle view and custom adapter

在我的应用程序中,我显示了一个带有自定义适配器的对话框,其中包含一个项目列表。我想获取对话框点击的item的值然后关闭....只能正确显示了

以下是我创建对话框的方式:

      AlertDialog dialogBuilder = new AlertDialog.Builder(mContext).create();
      LayoutInflater inflater = getLayoutInflater();
      View dialogView = inflater.inflate(R.layout.banderes_dialog, null);

      myrecyclerview = dialogView.findViewById(R.id.recycleview);
      myrecyclerview.setLayoutManager(new LinearLayoutManager((dialogView.getContext())));
      RecyclerViewAdapterLanguages recyclerAdapter = new RecyclerViewAdapterLanguages(dialogView.getContext(), lstLanguages);
      myrecyclerview.addItemDecoration(new DividerItemDecoration(dialogView.getContext(), DividerItemDecoration.VERTICAL));
      myrecyclerview.setAdapter(recyclerAdapter);


      dialogBuilder.setView(dialogView);
      dialogBuilder.show();

这是我的 oncreateviewholder:

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v;
        v= LayoutInflater.from(mContext).inflate(R.layout.bandera_item,parent,false);
        final MyViewHolder vHolder = new MyViewHolder(v);

        vHolder.item_language.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Toast.makeText(mContext, "Click on an item", Toast.LENGTH_SHORT).show();

            }
        });

        return vHolder;
    }

我怎么知道点击了我的主条目的项目 activity。如何关闭 oncreateviewholder 上的对话框(敬酒后)

谢谢!

您可以拥有一个界面并在 activity 上使用它的回调来关闭对话框

public interface OnItemClickListner {
    void OnItemClicked(View view, int position);
}

将您的侦听器传递给您的适配器,然后在项目中单击

vHolder.item_language.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                Toast.makeText(mContext, "Click on an item", 
                Toast.LENGTH_SHORT).show();
                onItemClickListner.OnItemClicked(v, position);
            }
        });

然后在您的 activity 中实现接口 在此之后你有它的覆盖方法,你可以在其中关闭你的对话框

@Override
public void OnItemClicked(View view, int position) {
    dialog.dismiss();
}