2011-06-09 80 views
1

我有一個列表視圖,其中每個textview應該顯示seekbar的值。我已經得到它的工作,一旦onStopTrackingTouch調用一個seekbar我更新相應的textview。我希望在用戶移動搜索欄時發生更改,但由於列表視圖不會經常刷新,因此遇到問題時也會出現問題。在列表視圖中刷新seekbar + textview

enter image description here

什麼是實現這一理想的方法是什麼?

回答

1

所以這裏是我所做的,我在getView外部定義了一個touch偵聽器,並將它設置爲getview中seekbar的TouchListener。 TouchListener將視圖作爲參數返回,我得到了視圖的父視圖,並對tectview執行了findViewByID搜索並對其進行了更新。

+0

如果列表視圖中有多於15行,會發生什麼情況? – milind 2011-07-28 07:21:13

+0

它工作正常:-) – 2011-07-28 12:27:28

+0

Ravi,請你爲此添加代碼捕捉排序。更新你的上面的答案,讓人們瞭解示例演示人員可能會感謝U與Grete Work of U.因爲大多數人在滾動時遇到了問題,它無法保持它以前的狀態。 – milind 2011-07-29 10:05:17

1

您可以在OnSeekBarChangeListener

希望這有助於叫notifyDataSetChanged

+0

我試過了,但它似乎把搜索欄的焦點關閉了,因此用戶無法尋找 – 2011-06-09 19:10:52

+1

好吧。我在我的適配器中嘗試了這個東西,並在每個seekBar的getView方法中調用setOnSeekBarChangeListener。對不好的代碼格式化,不知道如何處理評論。希望這個回答你的問題。 公共無效onProgressChanged(搜索欄搜索條,INT進步, \t \t \t布爾FROMUSER){ 的TextView mProgressText =(TextView的)((查看)seekBar.getParent())findViewById(R.id.progress)。 mProgressText.setText(progress +「」); } – Gopal 2011-06-09 19:37:07

1

我找到了一種方法來實現這種行爲,當我重寫ArrayAdapter的getView()方法時,我將SeekBar標籤屬性設置爲當前項目的位置。所以當onProgressChanged(...)執行回調時,它可以幫助我提取相應的項目。同時它讓我更新適配器中包含的相應對象。

 sbProgress.setTag(position); 
     sbProgress.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){ 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 

      View view = (View) seekBar.getParent(); 
      if(view != null){ 
       TextView tvProgress = (TextView)view.findViewById(R.id.tv_porcentaje_numerico_obtenido); 
       tvProgress.setText(progress + "%"); 
       MyAdapter.this.getItem((Integer)seekBar.getTag()).setProgres(progress); 
      } 
     } 
     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) {} 
     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) {} 

     }); 

這是解釋我的意思enter image description here

的圖像,我希望這可以幫助別人。

+0

您的解決方案正常工作。我的問題是我用我的適配器來獲得這個功能,我運行了除MyAdapter.this.getItem((Integer)seekBar.getTag())以外的所有代碼片段。 .setprogress是無法由android studio解決的。我想我會更新我的getIem方法,但我無法進行更新。你能爲我顯示你的getItem方法嗎? – salih 2015-06-15 11:48:36