Установить представление содержимого диалогового окна в классе фрагмента - PullRequest
0 голосов
/ 20 июня 2020

Я хочу установить текст в RecyclerView. У меня есть следующий код:

Класс адаптера:

@Override
public void onBindViewHolder(@NonNull UserBestellAdapter.ViewHolder holder, final int position) {
  //Gesamtpreis:   holder.item_betrag.setText(String.valueOf(bestellung.get(position).getBetrag()));
  // Datum:   holder.item_datum.setText(bestellung.get(position).getDatum());
    holder.item_items.setText(bestellung.get(position).getProdukte());
    //holder.item_code.setText(bestellung.get(position).getBestellnummer());
    String bestellid =bestellung.get(position).getBestellnummer() + "";
    holder.item_code.setText(bestellid);
    holder.item_betrag.setText(Double.toString(bestellung.get(position).getSumme()));
    holder.item_datum.setText(bestellung.get(position).getDatum());


    holder.layout_user_bestellung.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //TextView order_overview_number = epicDialog.findViewById(R.id.order_overview_number);
            //order_overview_number.setText();
            /*epicDialog.setContentView(R.layout.user_popup_order_overview);
            epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            Button btn_order_overview_finish = (Button) epicDialog.findViewById(R.id.btn_order_overview_finish);
            System.out.println(bestellung.get(position).getBestellnummer());
            btn_order_overview_finish.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    epicDialog.dismiss();
                }

            });
            epicDialog.show();*/
            UserFragmentBestell test = new UserFragmentBestell();
            test.callAction(10);

        }
    });



}

Функция, которую я хочу иметь во фрагменте, и она работает:

holder.layout_user_bestellung.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //TextView order_overview_number = epicDialog.findViewById(R.id.order_overview_number);
                //order_overview_number.setText();
                epicDialog.setContentView(R.layout.user_popup_order_overview);
                epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                Button btn_order_overview_finish = (Button) epicDialog.findViewById(R.id.btn_order_overview_finish);
                System.out.println(bestellung.get(position).getBestellnummer());
                btn_order_overview_finish.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        epicDialog.dismiss();
                    }

                });
                epicDialog.show();

            }
        });

Вот функция, которую я написал во фрагменте, и там я получаю исключение NullPointerException - он больше не распознает EpicDialog:

public void callAction(int pId) {
        System.out.println("HALLLLLLLLLLLLLLLLLOOOO");
        System.out.println(pId);
        epicDialog.setContentView(R.layout.user_popup_order_overview);
        epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        Button btn_order_overview_finish = (Button) epicDialog.findViewById(R.id.btn_order_overview_finish);
        //System.out.println(bestellung.get(position).getBestellnummer());
        btn_order_overview_finish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                epicDialog.dismiss();
            }

        });
        epicDialog.show();
    }

А вот мой класс фрагмента:

public class UserFragmentBestell<Textview> extends Fragment {

    RecyclerView recyclerView;
    TextView notfound;
    Dialog epicDialog;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.user_fragment_bestell, container, false);
        recyclerView = view.findViewById(R.id.recyclerview_scroll);
        notfound = view.findViewById(R.id.user_order_notfound);

        epicDialog = new Dialog(getActivity());

        return view;

    }

    public void callAction(int pId) {
        System.out.println("HALLLLLLLLLLLLLLLLLOOOO");
        System.out.println(pId);
        epicDialog.setContentView(R.layout.user_popup_order_overview);
        epicDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        Button btn_order_overview_finish = (Button) epicDialog.findViewById(R.id.btn_order_overview_finish);
        //System.out.println(bestellung.get(position).getBestellnummer());
        btn_order_overview_finish.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                epicDialog.dismiss();
            }

        });
        epicDialog.show();
    }

}

Как использовать epicDialog в классе фрагментов? Как заставить его работать? Если я вызываю метод, я получаю исключение NullPointerException. Итак, как правильно инициализировать диалог? Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...