我可能拥有自己的课程&#34; Torrent&#34;其中包含有关我在专用PC上下载uTorrent的一些数据。 ArrayList<Torrent> torrents
每秒都在后台更新。
所以,我有一个像已知模式的RecyclerView.Adapter。
请解释一下,为什么此代码运行正常:
@Override
public void onBindViewHolder(final MyViewHolder holder,int position){
...
// Update ETA textView
holder.tvEta.setText(String.format(Locale.getDefault(),"%d h %d min %d s",torrents.get(position).getEta()/3600,(torrents.get(position).getEta()%3600)/60,torrents.get(position).getEta()%60));
...
}
但在这种情况下不工作?它只是在开始时更新第一个值而不是更改更多:
@Override
public void onBindViewHolder(final MyViewHolder holder,int position){
...
// Update ETA textView
int secs = torrents.get(position).getEta();
int hours = secs / 3600;
int minutes = (secs % 3600) / 60;
int seconds = secs % 60;
holder.tvEta.setText(Locale.getDefault(), String.format("%d h %d min %d s", hours, minutes, seconds));
...
}
答案 0 :(得分:0)
内部适配器编写一个方法,如下所示
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> implements View.OnClickListener {
....
ArrayList<Torrent> torrentList;
public void addItems(ArrayList<Torrent> torrents)
{
torrentList = torrents;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return torrentList.size();
}
.....
.....
}
在您的主要活动中
public class MainActivity extends Activity
{
...
...
mAdapter.addItems(torrentList);
...
}