2013-02-14 48 views
0

我的ListView它看起来像下面想要更新或刷新列表视图

enter image description here

它是一种基于无线应用的

当图像的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(); 
     } 
    } 
} 

但问题是,列表视图不更新装置,其在列表视图显示橙色文本不与替换Hiiiiiii

回答

0

如果它的一个ListView我宁愿改变适配器的getView()方法中的textview ...或者如果列表是游标支持,然后在bindView().....我不知道你的方法。

+0

它是一个数组适配器,它不能与getView,因为我们必须先调用AsyncTask方法,并从网络获取信息后,我必须更新列表视图,所以它没有完成 – 2013-02-14 16:02:58

0

实际上,您需要重新创建适配器,而不是调用notifyDataSetChanged()。有关说明,请参阅this previous SO answer