Получить значение и закрыть диалоговое окно с видом корзины и пользовательским адаптером - PullRequest
0 голосов
/ 10 мая 2019

В моем приложении я отображаю диалог с пользовательским адаптером, в котором есть список элементов. Я хочу получить значение элемента, щелкнувшего в диалоговом окне, и закрыть его .... Я могу только правильно отобразить его.

Вот как я создаю диалог:

      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();

А вот мой собеседник:

    @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;
    }

Как я узнал, что предмет щелкнул по моей основной деятельности. Как я могу закрыть диалоговое окно на моем держателе просмотра (после тоста)

Спасибо!

1 Ответ

0 голосов
/ 10 мая 2019

Вы можете иметь интерфейс и использовать его обратный вызов в своей активности, чтобы закрыть диалоговое окно.

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);
            }
        });

, затем реализовать интерфейсв вашей деятельности после этого у вас есть метод переопределения, где вы можете закрыть свой диалог

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

...