gpt4 book ai didi

java - 如何从RecyclerView获取值

转载 作者:行者123 更新时间:2023-12-01 16:13:13 24 4
gpt4 key购买 nike

我创建了一个应用程序,您可以在其中订购东西。然后我有这个部分/窗口,您可以在其中看到您已经订购的商品:Overview

当您点击订单时,您可以看到更多详细信息: Detailled overview

但问题是我没有从第一张图片的表格中得到 59。有谁知道如何做到这一点?

这是我的适配器类:

public class UserBestellAdapter extends RecyclerView.Adapter<UserBestellAdapter.ViewHolder> {

ArrayList<Bestellung> bestellung;
Context mContext;
Dialog epicDialog;

public UserBestellAdapter(Context context, ArrayList<Bestellung> list) {
mContext = context;
bestellung = list;
epicDialog = new Dialog(mContext);
}

@NonNull
@Override
public UserBestellAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_bestell, parent, false);
UserBestellAdapter.ViewHolder viewHolder = new UserBestellAdapter.ViewHolder(view);


return viewHolder;
}
@NonNull

@Override
public void onBindViewHolder(@NonNull UserBestellAdapter.ViewHolder holder, 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);

btn_order_overview_finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
epicDialog.dismiss();
}

});
epicDialog.show();

}
});

}

@Override
public int getItemCount() {
return bestellung.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
private TextView item_items, item_betrag, item_datum, item_code;
private ConstraintLayout layout_user_bestellung;



public ViewHolder(@NonNull View itemView) {
super(itemView);
item_items = itemView.findViewById(R.id.items);
item_betrag = itemView.findViewById(R.id.betrag);
item_datum = itemView.findViewById(R.id.datum);
item_code = itemView.findViewById(R.id.code);
layout_user_bestellung = itemView.findViewById(R.id.layout_user_bestellung);

}
}
}

这是 fragment :

public class UserFragmentBestell<Textview> extends Fragment {

RecyclerView recyclerView;
TextView notfound;

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

return view;

}

//Abrufen aller Bestellungen eines Nutzers aus der Datenbank
public void getBestellungen() {
final FirebaseFirestore db = FirebaseFirestore.getInstance();
final FirebaseAuth mAuth = FirebaseAuth.getInstance();

db.collection("users").document(mAuth.getCurrentUser().getUid()).collection("bestellungen").orderBy("bestellnummer", Query.Direction.DESCENDING)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
ArrayList<Bestellung> list = new ArrayList<>();
//Toast.makeText(getActivity(), "Bestellungen wurden gefunden!", Toast.LENGTH_SHORT).show();
if(task.getResult().isEmpty()) {
notfound.setVisibility(View.VISIBLE);
Toast.makeText(getActivity(), "Es wurde keine Bestellung gefunden!", Toast.LENGTH_SHORT).show();
}



// ******LISTE WIRD ZWEIMAL AUFGERUFEN*******
else {
for (QueryDocumentSnapshot document : task.getResult()) {
//Log.d(TAG, document.getId() + " => " + document.getData());
Bestellung best = document.toObject(Bestellung.class);
list.add(best);
//System.out.println(bestellung[0] + bestellung[1] + bestellung[2]);
}
//System.out.println("Test: " + list.get(0).toString());
//System.out.println("Test: " + list.get(1).toString());
listeVerarbeiten(list);
//Toast.makeText(getActivity(), "Bestellungen wurden gefunden!", Toast.LENGTH_SHORT).show();
}

} else {
Toast.makeText(getActivity(), "Es ist ein Fehler beim Abrufen der Bestellungen aufgetreten: " + task.getException().toString(), Toast.LENGTH_SHORT).show();
//Log.w(TAG, "Error getting documents.", task.getException());
}
}
});
}

public void listeVerarbeiten(ArrayList<Bestellung> abrListe) {

UserBestellAdapter adapter = new UserBestellAdapter(getContext(), abrListe);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
}

}

最佳答案

您可以像单击按钮一样进行操作。只需为 TextView 添加一个新的 findViewById 并设置其文本即可。像这样:

// ... your code
epicDialog.setContentView(R.layout.user_popup_order_overview);
((TextView) epicDialog.findViewById(R.id.text_view_id)).setText(String.valueOf(bestellung.get(position).getDatum()));
// ...your code

希望对你有帮助!

关于java - 如何从RecyclerView获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62477834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com