recycleView的使用问题

monakatyking 2016-08-16 06:01:07
代码如下,我想问下,下面的代码哪里有问题?
我的本意的是intent传过来的数据,延迟显示,所以用了一个 handler.postDelayed,
在使用 handler.postDelayed之前,数据显示没有问题,但是用了 handler.postDelayed后,显示就是一片空白,不知道怎么回事
求指点

private Handler handler = new Handler();
private ArrayList<String> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView rl = (RecyclerView) findViewById(R.id.rl);

rl.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
rl.setLayoutManager(linearLayoutManager);
final MyAdapter myAdapter = new MyAdapter(this, list);
rl.setAdapter(myAdapter);

handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = getIntent();
list = intent.getStringArrayListExtra("list");
myAdapter.notifyDataSetChanged();
}
},2000);

}
}
...全文
402 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
怀君 2016-08-24
  • 打赏
  • 举报
回复
首先DEBUG看程序怎么走的。
a784063999 2016-08-23
  • 打赏
  • 举报
回复
               list = intent.getStringArrayListExtra("list");
                myAdapter.notifyDataSetChanged();
這裏改成
ArrayList<String> temp = intent.getStringArrayListExtra("list");
list.clear();
for (String s: temp)
{
    list.add(s);
}
myAdapter.notifyDataSetChanged();
看看
L_tracker 2016-08-23
  • 打赏
  • 举报
回复
在Adapter 里面设置一个public的方法,把数据源设置过去,然后notifyItemChanged
monakatyking 2016-08-23
  • 打赏
  • 举报
回复
引用 3 楼 bjtu_huaA 的回复:
从你的代码中我猜,MyAdapter构造可能是这样子的 MyAdapter(List list){ this.list = list } 如果是这样子的,那么,你在Activity中list引用进行了赋值,MyAdapter值的list内容并没有改变。 另外,如果你使用recycleView,做好使用notifyItemChanged方法进行更新数据。
你的意思是notifyItemChanged方法在MyAdapter里面执行,而不是放在外面吗?
monakatyking 2016-08-17
  • 打赏
  • 举报
回复
有人知道这个是怎么回事吗?求大神,求解惑
bjtu_huaA 2016-08-17
  • 打赏
  • 举报
回复
从你的代码中我猜,MyAdapter构造可能是这样子的 MyAdapter(List list){ this.list = list } 如果是这样子的,那么,你在Activity中list引用进行了赋值,MyAdapter值的list内容并没有改变。 另外,如果你使用recycleView,做好使用notifyItemChanged方法进行更新数据。
moonFY 2016-08-17
  • 打赏
  • 举报
回复
list初始化后set个null进去, final MyAdapter myAdapter = new MyAdapter(this, list); 你这句list都没初始化的。肯定会有问题

80,490

社区成员

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

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