android - 如何将连续数据从活动传递到适配器?
问题描述
在这里,我试图将进度条从活动类更新到适配器类。为此,我需要将 int(不断变化)传递给适配器类。可能是这个问题重复了,但许多用户要求制作接口来调用和检索数据。但我不知道如何使用它。
以下代码活动的位置..Asynctask...doINBackground..
filepath.putFile(URI).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progressIndouble = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
String id=a getTxt().toString();// this data is identification string to get position in list//
int progress=(int)progressIndouble;
// this variable i need to pass in adapter
}
});
适配器类
@Override
public void onBindViewHolder(@NonNull Viewholder viewHolder, int position) {
viewholder.progressbar.seProgress(retrieve data from activity)
}
解决方案
正如您所说Adapter
,我假设您正在使用ListView
,并且您想要更新Listview
. 此外,您的适配器中应该有一个List
来维护每个 Item 的进度。下面是实现它的伪代码。
在您的适配器中,您应该有与此类似的代码
public void updateProgress(int progress, int itemPos) {
list.get(itemPos).progress = progress; // update the data in your list
notifyItemChanged(itemPos); // This will trigger a call to OnBindViewHolder
}
@Override
pubic void onBindViewHolder(@NonNull Viewholder viewHolder, int position) {
int progress = list.get(position).progress;
viewHolder.progressBar.setProgress(progress);
}
现在,从您的 Activity 调用 updateProgress(),它将负责更新列表中的数据并刷新 Item。
推荐阅读
- firebase - firebase admin sdk 身份验证在本地失败,getaddrinfo ENOTFOUND
- tensorflow - 如何将 VGG 从暗网转换为张量流?
- c++ - 2wd蓝牙控制汽车无法停止的问题
- c++ - 如何将 C++ 类构造函数的值作为此类方法的默认参数传递?
- asp.net-core - EnterpriseLibrary.Data.NetCore - 使用 GenericDatabase 的连接不支持参数发现
- excel - 无法计算每个单元格中出现的某些标志
- python - 如何从数据库的属性中派生特定元素并将它们连接到主键?
- php - PHP Socket Client 只发送和接收一条消息
- c# - 通过列表的通用迭代
- rxjs - 完成后我应该退订吗?