![](/img/trans.png)
[英]I'm trying to read a simple Json file but im getting saved a null. What am i doing wrong? My json contains only 4 fields
[英]My list always Null. What am I doing wrong?
我正在為我們學校做某種葯物提醒應用程序,我正在嘗試根據我觀看的視頻創建一個可擴展的 RecyclerView,並且實際上是一步一步地遵循。 一切幾乎都一樣,但我們創建了一個數據庫,而不僅僅是固定值。 我遇到的問題是,在主活動中初始化后,我的列表值始終為 Null,而我的適配器返回 NULL。我做錯了什么?
這是我的代碼。
MediReminders.java 我決定刪除它,因為它只是一堆 getter 和 setter
MedAdapters.java
公共 class MedAdapters 擴展 RecyclerView.Adapter<MedAdapters.MediRemindersVH> {
List<MediReminders> MedList;
public MedAdapters(List<MediReminders> MedList) {
this.MedList = MedList;
}
@NonNull
@Override
public MedAdapters.MediRemindersVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row,parent,false);
return new MediRemindersVH(view);
}
@Override
public void onBindViewHolder(@NonNull MedAdapters.MediRemindersVH holder, int position) {
MediReminders mediReminders = MedList.get(position);
holder.med_nameTxt.setText(mediReminders.getMed_name());
holder.med_typeTxt.setText(mediReminders.getMed_type());
holder.fromdatedetailTxt.setText(mediReminders.getFromDatedetail());
holder.todatedetailTxt.setText(mediReminders.getToDatedetail());
holder.timedetailTxt.setText(mediReminders.getTimedetail());
holder.whendetailTxt.setText(mediReminders.getWhendetail());
holder.notesdetailTxt.setText(mediReminders.getNotesdetail());
boolean isExpandable = MedList.get(position).isExpandable();
holder.expandableLayout.setVisibility(isExpandable ? View.VISIBLE : View.GONE);
}
@Override
public int getItemCount() {
return MedList.size();
}
public class MediRemindersVH extends RecyclerView.ViewHolder {
TextView med_nameTxt, med_typeTxt, fromdatedetailTxt, todatedetailTxt, timedetailTxt, whendetailTxt, notesdetailTxt;
LinearLayout linearLayout;
RelativeLayout expandableLayout;
public MediRemindersVH(@NonNull View itemView) {
super(itemView);
med_nameTxt = itemView.findViewById(R.id.medname);
med_typeTxt = itemView.findViewById(R.id.auto_complete_txt);
fromdatedetailTxt = itemView.findViewById(R.id.fromdate);
todatedetailTxt = itemView.findViewById(R.id.todate);
timedetailTxt = itemView.findViewById(R.id.datetime);
whendetailTxt = itemView.findViewById(R.id.radioGroup);
notesdetailTxt = itemView.findViewById(R.id.notes);
linearLayout = itemView.findViewById(R.id.linear_layout);
expandableLayout = itemView.findViewById(R.id.expandable_layout);
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MediReminders mediReminders = MedList.get(getAdapterPosition());
mediReminders.setExpandable(!mediReminders.isExpandable());
notifyItemChanged(getAdapterPosition());
}
});
}
}
}
MainActivity.java
公共 class MainActivity 擴展 AppCompatActivity {
RecyclerView recyclerView;
List<MediReminders> MedList;
MedAdapters adapter = new MedAdapters(MedList);
ImageButton addNewButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
recyclerView = findViewById(R.id.MedList);
setContentView(R.layout.activity_main_list);
initData();
setRecyclerView();
}
private void setRecyclerView () {
//problem is specifically this one...
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
}
private void initData () {
MedList = new ArrayList<>();
MedList.add(new MediReminders("Paracetamol", "Tablet", "Apr 26, 2022", "May 9,2022", "6:30 PM", "Before Meal", "Take in water first"));
}
}
首先,嘗試使用固定的硬編碼值檢查您的應用程序。 如果它工作正常。
其次,在某些 dbms 工具上運行並檢查您的數據庫查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.