gpt4 book ai didi

android 在 ListView 中更改行项目 View 相关的一个 fragment

转载 作者:行者123 更新时间:2023-11-29 01:37:36 26 4
gpt4 key购买 nike

我开发了一款基于服务器连接并从服务器下载内容的应用程序。为了通知下载文件 pr 的进度,以便更改包含它的 fragment 中一个 Listview 的行项目的 View ,我在自定义适配器中提供了一些代码以保留 convertView 对象:

    public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub
View convertView = view;
final MusicDownloadStructure data = getItem(position);

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.tab2_online_store_row_item,
parent, false);
data.view = convertView;
} else {
data.view = convertView;
}
}

当运行 asynctask 线程时,我使用这个对象来将 Listview 行项目的 View 更改为:

    protected void onProgressUpdate(Long... values) {
if (mdata.view != null) {
TextView statusTextView = (TextView) mdata.view
.findViewById(com.example.app.R.id.tab2_downloadProgressText);
statusTextView.setText(String.Valueof(values[0]));
}

问题:
1-asynctask 执行时 Textview 不改变 虽然 onProgressUpdate 应该在 UI 线程上运行2-有时该元素的文本开始更改其他行会影响此更改!任何人都可以帮忙吗?
提前致谢

最佳答案

尝试调用 notifyDataSetChanged :

void onProgressUpdate(Long... values) {
if (mdata.view != null) {
TextView statusTextView = (TextView) mdata.view
.findViewById(com.example.app.R.id.tab2_downloadProgressText);
statusTextView.setText(String.Valueof(values[0]));
myListView.notifyDataSetChanged(); //or simply notifyDataSetChanged if your Async inside adapter
}

关于android 在 ListView 中更改行项目 View 相关的一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26954653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com