我在设置完数据之后设置的布尔值, mLayoutTab0.setSelected(true); mRouteDetails = routePlaneInfos.getRouteDetailLists(); mRouteList.clear(); mRouteList.addAll(mRouteDetails.get(0)); LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(layoutManager); mResultAdapter = new RouteResultAdapter(mRouteList); mRecyclerView.setAdapter(mResultAdapter); isDataLoaded = true; 用来判断 没有数据的时候点击无效,如以下代码:if (isDataLoaded) { mLayoutTab0.setSelected(false); mLayoutTab1.setSelected(false); mLayoutTab2.setSelected(true); interruptCountdown(); BaiduNaviManagerFactory.getRouteResultManager().selectRoute(2); BaiduNaviManagerFactory.getRouteResultManager().fullView(); mRouteList.clear(); mRouteList.addAll(mRouteDetails.get(2)); mResultAdapter.notifyItemChanged(2); } else { mLayoutTab2.setEnabled(false); Log.d("TAGAA", "onClick: 没有数据 点击无效2"); } 这个isDateLoaded=true; 但是当没有数据的时候我点击数据1,没有反应,是正常的,但是出现数据了,我再次点击数据1,还是执行的else,这个逻辑应该怎么修改?帮我改一下
时间: 2023-11-22 07:54:19 浏览: 66
你可以将判断数据是否加载完成的逻辑放入到点击事件中,这样就可以动态判断了。修改后的代码如下所示:
```
mLayoutTab0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (routePlaneInfos == null || routePlaneInfos.getRouteDetailLists() == null) {
Toast.makeText(getActivity(), "数据加载中,请稍等", Toast.LENGTH_SHORT).show();
return;
}
if (isDataLoaded) {
mLayoutTab0.setSelected(true);
mLayoutTab1.setSelected(false);
mLayoutTab2.setSelected(false);
interruptCountdown();
BaiduNaviManagerFactory.getRouteResultManager().selectRoute(0);
BaiduNaviManagerFactory.getRouteResultManager().fullView();
mRouteList.clear();
mRouteList.addAll(mRouteDetails.get(0));
mResultAdapter.notifyDataSetChanged();
} else {
Log.d("TAGAA", "onClick: 没有数据 点击无效2");
}
}
});
```
这样就可以动态判断数据是否加载完成了,如果加载完成了就执行对应的逻辑,否则提示用户数据正在加载中。
阅读全文