以上代码,是一个recyclerview设置了六个数据,请根据服务端返回的数据中的action,去进行选中设置相对应的数据,{ "subFocus": "", "opration": "", "postResult": "success", "extras": null, "focus": "map", "intent": "selectPreference", "operation": "", "object": { "api": "selectPreference", "action": "route_plan_preference_notoll" }, "playMode": "" }服务端返回的数据
时间: 2023-07-17 18:09:59 浏览: 94
recyclerview交互代码
根据您提供的服务端返回的数据,您可以根据`object`字段中的`action`来选中相应的数据。
以下是修改后的代码示例:
```java
private void initPreferView() {
initRouteSortList();
mPreferRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3));
mPreferRecyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
if (mItemsAdapter == null) {
mItemsAdapter = new PreferItemsAdapter(getContext(), mRouteSortList);
mItemsAdapter.setClickPreferListener(this);
}
mPreferRecyclerView.setAdapter(mItemsAdapter);
// 根据服务端返回的数据选中对应的项
String action = "route_plan_preference_notoll"; // 替换为服务端返回的action
selectPreferItem(action);
}
private void selectPreferItem(String action) {
for (int i = 0; i < mRouteSortList.size(); i++) {
RouteSortModel model = mRouteSortList.get(i);
if (model.getAction().equals(action)) {
model.setSelected(true);
break;
}
}
}
private void initRouteSortList() {
mRouteSortList = new ArrayList<>();
mRouteSortList.add(new RouteSortModel("智能推荐", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT));
mRouteSortList.add(new RouteSortModel("时间优先", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_TIME_FIRST));
mRouteSortList.add(new RouteSortModel("少收费", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOTOLL));
mRouteSortList.add(new RouteSortModel("躲避拥堵", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM));
mRouteSortList.add(new RouteSortModel("不走高速", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_NOHIGHWAY));
mRouteSortList.add(new RouteSortModel("高速优先", IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_ROAD_FIRST));
}
```
在`initPreferView()`方法中,调用`selectPreferItem(action)`方法,并将服务端返回的`action`作为参数传入。`selectPreferItem()`方法会遍历路线排序列表,并找到与`action`匹配的项,并将其设置为选中状态。
请注意,您需要将代码中的示例的`action`值替换为实际从服务端返回的数据中的`action`值。
希望能帮到您!如果还有其他问题,请随时提问。
阅读全文