我有listview,如下所示
它是一种基于无线电的应用
当用户点击图像时,将调用AsyncTask并播放音乐并获取一些信息 将替换为AMIT SIDDHPURA文本
下面是我的代码
holder.imgPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new MetadataTask2().execute(holder.txtMetadata);
}
class StreamHolder {
TextView txtStreamName;
TextView txtStream;
TextView txtMetadata;
ImageView imgPlay;
}
MetaDataTask2类代码在
之下 class MetadataTask2 extends AsyncTask<TextView, Void, IcyStreamMeta> {
String title_artist;
TextView txtView;
@Override
protected com.example.xmlparsingex.IcyStreamMeta doInBackground(TextView... arg0) {
txtView = arg0[0];
return streamMeta;
}
@Override
protected void onPostExecute(IcyStreamMeta result) {
try {
txtView.setText("Hiiiiiiiiiii............");
MCObjectMetadata.cancel();
MCObjectMetadata = new MyCounterMetadata(10000, 1000);
MCObjectMetadata.start();
**adapter.notifyDataSetChanged();
mainListView.setAdapter(adapter);
mainListView.invalidate();**
startService(new Intent(CompaniesList.this, NotifyService.class));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
try {
PD = ProgressDialog.show(CompaniesList.this, "Tuning...", "Please Wait...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
但问题是listview没有更新意味着listview中显示的橙色文本没有替换为 Hiiiiiii
答案 0 :(得分:0)
如果它是一个ListView我宁愿更改适配器的getView()方法中的textview ...或者如果list是游标支持那么在bindView()中......我不确定你的方法。< / p>
答案 1 :(得分:0)
您实际上需要重新创建适配器而不是调用notifyDataSetChanged()
。有关说明,请参阅this previous SO answer。