Я хочу установить текст в 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. Итак, как правильно инициализировать диалог? Заранее спасибо!