if (mRoutePlanItems != null) { 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"); } 以上代码我不能删除是否为空的判断,因为那个item数据它加载出来会有1秒,这个时候是为空的,用户点击的时候程序就崩溃了,所以加了个else,但是等过1秒的时候,有数据了,再次点击这个就没反应了,选中不了了,这个写法不太对,帮我改一下
时间: 2023-07-16 09:15:51 浏览: 93
Java带复选框的树(Java CheckBox Tree)实现和应用
你可以尝试使用一个 boolean 变量来记录数据是否已经加载完成,然后根据这个变量来判断是否可以执行相应的操作。可以将这个变量初始化为 false,在数据加载完成后设置为 true。修改后的代码如下:
```
private boolean isDataLoaded = false;
// 在数据加载完成后设置 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");
}
```
这样,当数据加载完成后,再次点击时就可以执行相应的操作了。
阅读全文