每2秒我必须在RecyclerView中显示一项

时间:2018-07-10 09:25:58

标签: android android-recyclerview

我每天要从数据库中获取数据。并且数据必须每隔一天显示在RecyclerView中(用于循环)。 但必须在2秒后随时显示RecyclerView项目。 但是,在(for循环)中读取了整天的所有数据之后,所有项目都只显示一次。 所以.. 在(for循环)的任何实现中,我如何一一显示项目? 希望能帮助我。

3 个答案:

答案 0 :(得分:1)

仅用一个项目初始化回收站视图,然后用System.currentTimeMillis();计时,两秒钟后在recyclerView列表中添加一个项目并调用notifyItemInserted()通知适配器新项目是插入。

此处是用于此目的的简单伪代码(仅用于提供一般性想法):

long initialTime = System.currentTimeMillis();
long now = System.currentTimeMillis();
while(now - initialTime < 2000){
    now = System.currentTimeMillis();
}
//now code after two seconds..
mainList.add(item);
adapter.notifyItemInserted();

答案 1 :(得分:0)

尝试使用此代码,并延迟绑定到apadpter进入回收器视图。

@Override
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
    // below code handle click event on recycler view item.
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            final String data = mStringList.get(position);
            if (data == "RED") {
                holder.cardView.setBackgroundColor(Color.parseColor(color));
            }
            holder.textView.setText(data);
            holder.firstButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    onItemClick.getPosition(data); // shared data.
                }
            });
        }
    }, 2000);

}

答案 2 :(得分:0)

在活动中onCreate

handler = new Handler();
    handler.postDelayed(runnable, 2000);

活动

 final Runnable runnable = new Runnable() {
    @Override
    public void run() {
        adapter.add(listItem);
        handler.postDelayed(this, 2000);
    }
};

在适配器中

 public void add(ListItem listItem) {
    list.add(listItem);
    notifyDataSetChanged();
}