EventBus 接收方法中死活不能执行UI更新,这有社么用呢

gexing918 2016-08-21 08:59:51


public class FragmentLeft extends Fragment {

public ListView lv;
LeftAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.text,
container, false);


return rootView;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);




new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
List<String> list = new ArrayList<String>();
list.add("111");
list.add("222");
list.add("33");
list.add("44");
EventBus.getDefault().post(list, "listTag");
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}).start();


}



@Subscriber(tag = "listTag",mode = ThreadMode.MAIN)
private void getData(List<String> list) {

Log.i("mytag", "---- list = " +list.size());

adapter.setData(list);
adapter.notifyDataSetChanged();


//setListAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,android.R.id.text1,list));
}


@Override
public void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
}

这 @Subscriber(tag = "listTag",mode = ThreadMode.MAIN)不是到UI线程了吗,list集合也有数据,但死活就是不走getViwe()
...全文
1015 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒冰大神 2017-11-27
  • 打赏
  • 举报
回复
ListView没setAdater(); ListView都没初始化
  • 打赏
  • 举报
回复
EventBus.getDefault().post(list, "listTag"); 这句代码有问题,需要消息包裹下
gexing918 2016-08-24
  • 打赏
  • 举报
回复
上面的代码adater没有被实例化,但实例后,结果也是一样,list列表没数据展示
gexing918 2016-08-24
  • 打赏
  • 举报
回复
这与在activity中adapter.notifydatesetChage()有什么不一样吗
梦境之末lol 2016-08-22
  • 打赏
  • 举报
回复
引用 1 楼 qq_31934293 的回复:
不走getview不是eventbus的问题,应该是你notifyDataSetChanged的问题。 你可以试着在adapter里面写一个这样的方法: public void updateListView(List<String, String> newlist) { this.list = newlist; notifyDataSetChanged(); } 然后在需要更新UI的时候调用这个方法: adapter.updateListView(list);
public void updateListView(List<String> newlist) { this.list = newlist; notifyDataSetChanged(); }
梦境之末lol 2016-08-22
  • 打赏
  • 举报
回复
不走getview不是eventbus的问题,应该是你notifyDataSetChanged的问题。 你可以试着在adapter里面写一个这样的方法: public void updateListView(List<String, String> newlist) { this.list = newlist; notifyDataSetChanged(); } 然后在需要更新UI的时候调用这个方法: adapter.updateListView(list);
内容概要:本文围绕“可再生能源发电与电动汽车的协同调度策略”展开硕士论文级别的研究与复现工作,基于Matlab平台构建了高比例可再生能源接入背景下电力系统与电动汽车(EV)之间的多时间尺度协同优化模型。研究重点在于应对风光发电不确定性,充分利用电动汽车作为移动储能单元的灵活充放电能力(含V2G技术),实现电网削峰填谷、提升新能源消纳效率与系统运行经济性。文综合考虑了异质电动车集群特性、V2G过程的损耗约束以及随机因素影响,采用如深度确定性策略梯度(DDPG)强化学习、混合整数线性规划(MILP)等先进优化算法进行求解,并通过基准模型对比验证了所提自适应调度策略在提升电网稳定性、降低运行成本方面的有效性。; 适合人群:具备一定电力系统基础知识、优化理论背景及Matlab编程能力的研究生、科研人员,以及从事新能源并网、智能电网调度、车网互动(V2G)等方向的工程技术人员。; 使用场景及目标:①学习并复现已发表高水平硕士论文的协同调度建模方法与仿真流程;②掌握将深度强化学习(如DDPG)应用于虚拟电厂、电动汽车集群调度等复杂非线性决策问题的技术路径;③为开展新能源消纳、需求侧响应、微电网优化运行等相关课题的研究提供可复用的代码框架与创新思路参考。; 阅读建议:建议读者结合文提供的完整Matlab代码与技术文档,深入理解模型构建逻辑、算法实现细节与参数设置依据,优先在Simulink/Matlab环境运行并调试仿真案例,通过调整场景参数与算法超参,探究不同策略对调度效果的影响,从而深化对协同调度机制与智能优化方法应用的理解。

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧