2013-02-08 54 views
1

我創建了一個可擴展的ListView,其中我創建了一個自定義組佈局。在android中的grouplayput上編輯文本的可擴展列表

在組佈局上,我在右側創建了一個EditText。每當我在EditText上放置文本並單擊可展開列表時,列表不會展開/摺疊。

當我對EditText進行focusable false時,那麼list是展開/摺疊。

如何解決這個問題?請建議我。

回答

1

編輯文本本身就是一個關注焦點的組件。如果我們在列表視圖中放置可展開列表,那麼列表單擊和摺疊展開屬性將不起作用。 同樣的問題出現了,當您使用的EditText,按鈕的ImageButton等,

所以你需要使用:

1.使用在擴展列表如下屬性:

android:descendantFocusability="blocksDescendants" 

或 2。在EditText中使用以下屬性

android:focusable="false" 
+1

你好,我編輯fandroid:focusable =「false」在編輯文本字段上。但是我面臨新的問題,我不是在編輯框上寫文本。 – Deepak

1

今天,我解決了上面的問題在可擴展列表和N級可擴展列表視圖。 我附上了代碼。 首先,我已經在您的活動/適配器上設置了可編輯文本的焦點假,不要在EditText的xml上。

EditText.setFocusable(false); 

其次,我已經使用觸摸聽者因爲在這裏我設置的編輯text.So,我可以很容易地鍵入編輯框的文本可聚焦如此。

EditText.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       EditText.setFocusableInTouchMode(true); 
       return false; 
      } 
     }); 

在那之後,我已經使用的KeyListener因爲我在這裏根據位置獲得散列地圖數據和設置值/組position.so,每當我點擊2級或第N級膨脹列表視圖數據不變。這對於可擴展列表視圖非常重要。完成按鍵我隱藏了鍵盤,並且設置了可編輯文本的可重點虛假,以便我可以自由展開/摺疊。

EditText.setOnKeyListener(new OnKeyListener() { 
      String editValue; 
      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) 
       { 
        editValue=groupHolder.numberEdit.getText().toString().trim(); 
        EditText.setFocusable(false); 
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY,0); 
       } 
       setEditValueHashMap.put(groupPosition, editValue); 
       return false; 
      } 
     });