2013-02-14 43 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