2012-10-30 37 views
5

我有一個listview,其中每行是一個EditText,並帶有一些文本。當我點擊一行時,EditText獲取焦點,顯示閃爍的光標和選擇錨點(您知道藍色/灰色的手柄,您可以通過拖動來選擇一定範圍的文本)。EditText選擇錨點

問題是當我從一行移動到另一行(edittext到另一個)時,如果沒有輸入新文本,前一個edittext中的選擇定位點將保持一段時間可見。如果edittext沒有焦點,我想立即隱藏這個錨點。

任何想法?

ClearFocus不工作

 editText.setOnFocusChangeListener(new OnFocusChangeListener() {    
      public void onFocusChange(View v, boolean hasFocus) { 
       if(hasFocus) { 

       } else { 
        editText.clearFocus(); 
        //editText.clearComposingText();       
       } 
      } 
     }); 

截圖

The Problem

+0

這是奇怪的,你有沒有測試它在其他設備上? – meh

+0

我只有一個設備:( – States

+0

)以及當您的某個edittext獲得焦點時,或者您的適配器沒有以正確的方式寫入時,唯一的'解決方案'正試圖調用其他所有單元格上的clearFocus()。 嘗試這個適配器,而不是: http://thinkandroid.wordpress.com/2010/01/13/custom-baseadapters/ – meh

回答

2

我終於得到它!首先,我從ListView刪除了可聚焦性。然後,我寫了一個自定義OnFocusChangeListener,從視圖中刪除選擇失去焦點。這個監聽器被一個自定義適配器應用到視圖中(我包裝了ArrayAdapter,但你可以包裝一個SimpleCursorAdapter)。

附件是一個演示(與埃克萊爾模擬器測試):

​​
+0

現在就試試看。 getView(..)返回的視圖是一個EditText類型? – States

+0

嗯,不起作用:(現在錨點被設置爲edittext的開頭,而不是結束。我有一種感覺,它是一個特定於版本的問題。 – States

+0

@States查看更新:我使用了'view.dispatchWindowFocusChanged (hasFocus)'在這個聽衆中......這對我來說似乎真是個黑客,但在我的測試中起作用 – Raffaele