2013-02-08 2 views
1

사용자 지정 그룹 레이아웃을 만든 확장 가능한 ListView를 만들었습니다.android의 grouplayput에 편집 텍스트가있는 확장 가능한 목록

그룹 레이아웃에서 나는 오른쪽에 EditText를 만들었습니다. EditText에 텍스트를 놓고 확장 가능한 목록을 클릭하면 목록이 확장/축소되지 않습니다.

EditText의 포커스가 잘못된 경우 목록이 확장/축소됩니다.

이 문제를 해결하는 방법은 무엇입니까? 제발 제안 해주세요.

답변

1

텍스트 편집 자체는 집중할 수있는 구성 요소입니다. 목록 뷰 내부에 배치하면 확장 가능한 목록 다음에 목록 클릭 및 축소 확장 속성이 작동하지 않습니다.

확장 목록에서 속성을 다음 1. 한 : 같은 문제는 등의 EditText, 버튼,하여 ImageButton을 사용할 때

그래서 당신이 사용할 필요가 발생한

android:descendantFocusability="blocksDescendants" 

또는 2. EditText에서 다음 속성 사용

android:focusable="false" 
+1

안녕하세요, 편집 한 filedes : focusable = "false"편집 텍스트 filed.But 편집 상자에 텍스트를 쓰지 않는 새 문제에 직면하고 있습니다. – Deepak

1

오늘 확장 가능한 목록과 위의 문제를 해결했습니다. N 레벨 확장 가능 목록보기. 코드를 첨부했습니다. 첫 번째로, 필자는 EditText의 xml에 대한 것이 아니라 귀하의 액티비티/어댑터에 편집 텍스트의 포커스를 허위로 설정했습니다.

EditText.setFocusable(false); 

둘째, 여기서는 필자가 편집 텍스트에 초점을 맞추기 때문에 터치 리스너를 사용했습니다. 편집 상자에 텍스트를 쉽게 입력 할 수 있습니다. 나는 위치에 따라 해시 맵 데이터 및 설정 값을 얻고 여기에 있기 때문에

EditText.setOnTouchListener(new OnTouchListener() { 

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

그 후, 나는/그룹 position.so 모든 KeyListener를 사용하고 그 나는이 수준에 클릭하거나 N 수준의 확장 목록보기입니다 때마다 데이터는 변경되지 않습니다. 이것은 확장 가능한 목록보기에서 매우 중요합니다. 키 입력을 완료하면 키보드가 숨겨집니다. 편집 텍스트의 포커스를 false로 설정하여 자유롭게 확장/축소 할 수 있습니다.

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; 
      } 
     }); 
관련 문제