gpt4 book ai didi

android - 将 json 数据的值存储到 arraylist 并填充 View 持有者

转载 作者:行者123 更新时间:2023-11-29 02:25:53 27 4
gpt4 key购买 nike

我正在制作一个应用程序,我在其中从 url 接收一些 JSON 数据,如所示 Image .基本上每个日期数组中都有 5 个对象,我正在使用这段代码从每个日期数组中获取 session 值和 session 值

 JSONObject jsonObject = new JSONObject(response);
JSONObject dataObj = jsonObject.getJSONObject("data");
Iterator<String> iter = dataObj.keys();
while (iter.hasNext()) {
key = iter.next();
JSONArray datesArray = dataObj.getJSONArray(key);
sessionsfrom = new ArrayList<String>();

JSONObject datesObjectt = datesArray.getJSONObject(4);

for (int i = 0; i < datesArray.length(); i++) {
JSONObject datesObject = datesArray.getJSONObject(i);
sessionsfrom.add(datesObject.getString("session_from") + " - " +datesObject.getString("session_to") );
mBaseRecyclerAdapter.setItems(sessionsfrom);
}

在最后一行中,我将所有 session 从和 session 到值存储在 arraylist 中,并放入回收器 View 的适配器中。这些 session 在应用程序中创建时隙,如本 Image 所示。现在我想要的是,我必须将 bookingFound 值 从 json 保存到具有 session from 和 session to value 的某个地方,即它不会显示在应用程序中,但在每个插槽的背景中,bookingFoung 的每个值都必须是存储以便在填充 viewholder 时,我可以检查哪些 bookingFound 插槽返回 true,哪些返回 false,这样如果 bookingFound 为 true,我可以将插槽的颜色更改为灰色

为了填充 View 持有者,我有以下一段代码

   private BaseRecyclerAdapter<String, CourtDetailsTimeViewHolder> mBaseRecyclerAdapter = new BaseRecyclerAdapter<String, CourtDetailsTimeViewHolder>(CourtDetailsTimeViewHolder.class, R.layout.item_court_details_availability_time) {

@Override
protected void populateViewHolder(CourtDetailsTimeViewHolder viewHolder, String model, int position) {
// SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
//String name = preferences.getString("slotfound", "");
viewHolder.mCheckBox.setOnCheckedChangeListener(null);
viewHolder.mCheckBox.setText(model);
viewHolder.mCheckBox.setChecked(getChecked(model));
/*for (int i = 0; i < bookingcheck.size(); i++) {
if (bookingcheck.get(i).contains("true")) {
viewHolder.mCheckBox.setEnabled(false);
viewHolder.mCheckBox.setBackgroundResource(R.drawable.slctr_bg_cb_challenges_details_disable);
} else {
viewHolder.mCheckBox.setEnabled(true);
viewHolder.mCheckBox.setBackgroundResource(R.drawable.slctr_bg_cb_challenges_details);
}
}*/

}
};

在这段代码中,注释部分是我尝试过的,但没有用。我将 bookingFound 值放在 bookingcheck 数组列表中,然后检查它是否包含 true 然后禁用插槽,否则启用但它不起作用......请帮助

结论

1- store bookingFound json value 就像 session from 和 session to 值一样

2- 使用该值在应用程序上启用或禁用插槽

最佳答案

快速修复

使用

datesObject.getString("session_from") + " - " +datesObject.getString("session_to")+"$"+datesObject.get("bookingFound").getAsBoolean()

在显示 session 时使用

String Session = "02:00 AM - 02:30 AM$true";
String[] separated = currentString.split("$");
separated[0]; // this will contain "02:00 AM - 02:30 AM"
separated[1]; // this will contain "true"

for (int i = 0; i < bookingcheck.size(); i++) {
if (bookingcheck.get(i).contains("true")) {
viewHolder.mCheckBox.setEnabled(false);
viewHolder.mCheckBox.setBackgroundResource(R.drawable.slctr_bg_cb_challenges_details_disable);
} else {
viewHolder.mCheckBox.setEnabled(true);
viewHolder.mCheckBox.setBackgroundResource(R.drawable.slctr_bg_cb_challenges_details);
}
}

关于android - 将 json 数据的值存储到 arraylist 并填充 View 持有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52234229/

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