【发布时间】:2021-11-09 23:44:57
【问题描述】:
我有一个使用 RecyclerView 的列表,我想要的是当我单击列表项时,它会打开一个片段,我一直在搜索,我只找到了一个活动,但我只使用片段,如果我使用活动,它会随着我的操作栏消失,这一切都在片段中设置。
这是我的适配器类:
public class CreditCardAdapter extends RecyclerView.Adapter<CreditCardHolder> {
private final List<CreditCard> creditList;
public CreditCardAdapter(List<CreditCard> creditList) {
this.creditList = creditList;
}
@NonNull
@Override
public CreditCardHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.credit_card_item, parent, false);
return new CreditCardHolder(view);
}
@Override
public void onBindViewHolder(@NonNull CreditCardHolder holder, int position) {
CreditCard credit = creditList.get(position);
String flag = credit.getFlag();
holder.flag.setText(flag);
String owner = credit.getOwner();
holder.owner.setText(owner);
String valueLimit = String.format("%.2f", credit.getLimit());
holder.limit.setText(valueLimit.replace(".", ","));
holder.creditCardId = credit.getId();
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Method on click
}
});
}
@Override
public int getItemCount() {
return creditList.size();
}
}
我需要将信用卡 ID 发送到 Fragment,以调用控制器并从数据库中获取信息,我尝试了它的意图,但它只有在我使用 startActivity(intent) 调用活动时才有效。
所以这里是片段类:
public class InfoCreditCardFragment extends Fragment {
public InfoCreditCardFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_info_credit_card, container, false);
String id; //Here I need the id from the Adapter
TextView flagInfoTxt = view.findViewById(R.id.flagInfoTxt);
TextView ownerInfoTxt = view.findViewById(R.id.ownerInfoTxt);
CreditCard cc = CreditCardController.getWithId(id);
flagInfoTxt.setText(cc.getFlag());
ownerInfoTxt.setText(cc.getOwner());
return view;
}
}
如果有人知道可以提供帮助,请,我很绝望。
【问题讨论】:
-
您可以使用
FragmentManager替换片段。您可以将您的 id 作为Bundle
标签: java android android-studio android-fragments android-recyclerview