2013-10-14 16 views
0

OnCreate의 OnClick 함수에서 Dialog를 호출하고 있습니다. 이 대화 상자에서 앱 사용자는 외부 데이터베이스에 무언가를 추가 할 수 있습니다.안드로이드 - 대화 후 편집 텍스트 초점이 흐려짐

이제 내 문제는 대화 상자가 사라지고 (myDialog.dismiss()) 실제 활동으로 돌아 오면 EditText에 초점이 맞추어 져 있다는 것입니다. 내 전체 화면에는 오직 1 개의 EditText 만 제외하고 Spinners와 TextViews가 있습니다.

이상한 일은 액티비티를 처음 호출 할 때 액티비티 (첫 번째 스피너를 표시하고 EditText는 사용하지 않음)를 표시하지만 대화 상자가 닫히면 EditText가 포커스됨을 의미합니다.

내가 활동 태그

내에서 매니페스트에 android:windowSoftInputMode="adjustResize|stateHidden"있어 그리고 난이 너무 XML에 글고 치기에 android:focusableInTouchMode="true"을 넣어 tryed했지만 문제가 해결되지 않았다.

누구든지 내가 원하는 것을 찾을 수 있습니까?

미리 감사드립니다.

답변

1

초점을 맞출 뭔가 다른 :)

+0

감사합니다. 실제로 시도했지만 지금 상황이 더 복잡해집니다. 처음 대화 상자가 닫히면 중간에 활동이 표시됩니다 (EditText가 초점을 맞춘 상태). 그러나 두 번째로 대화 상자를 열고 닫습니다 (이전과 똑같은 동작).이 대화 상자는'klant.requestFocus();를 사용하여 상단 회 전자에 초점을 맞추고 있습니다. klant.setFocusableInTouchMode (true);'. 문제가 될 수있는 단서가 있습니까? – GeertG

+0

EditText를 통해 TextView 중 하나를 포커스 가능으로 설정하려고 시도 했습니까? – JWqvist

+0

필자는 상부 회 전자를 초점으로 설정하려고했지만 두 번째 시간에만 작동하지만 처음 작동해야합니다.P – GeertG

0

Android 포커스가 다소 임의적입니다. 실제로 제어 할 수 없습니다. 대화 상자가 사라졌을 때 textview를 사용하지 않도록 설정하고 다시 사용하도록 설정할 수 있습니다.하지만 이에 대한 조언을드립니다.

솔직히 말해서 안드로이드가 그 일을하게하십시오. 우리는 정말 큰 응용 프로그램에서 집중 논리에 맞서서 노력하고 많은 시도를 포기하고 번거롭게 할 가치가없는 고객을 확신 시켰습니다.

+0

대화 상자를 닫을 때 활동 스크롤을 스크롤 할 수있는 방법이있을 수도 있습니다. 아니면 회 전자에 초점을 맞추는 방법이 있을까요 ?? 그런 다음 문제가 해결되었습니다. – GeertG

+0

맨 위로 스크롤하는 것은 사용자에게 더욱 악합니다. 그리고 포커스를 "설정할"수 없으며 요청할 수 있습니다. 'requestFocus'에 대한 나의 경험은 시간의 90 %가 무시되었다는 것입니다. – meredrica

+0

예를 들어 나도 requestFocus를 사용할 수 없으므로이 문제를 해결할 다른 방법은 모르십니까? – GeertG

0

나는이 같은 문제가 있었어요을 설정하려고 할 수 있습니다 안드로이드 상단에서 처음 포커스보기 초점을 맞출 것이다. 시도 :이 내용은 onDismiss() 방법을 가지고 내 대화 상자에서 버튼을 제외한 모든 근무

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { 
     @Override 
     public void onDismiss(DialogInterface dialog) { 
      hideSoftKeyboard(); 
     } 
    }); 




private void hideSoftKeyboard() { 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 

. 내 EditText 위의 TextView에 focusable=truefocusableInTouchMode=true을 추가하면 (Jeppe Andersen이 언급했듯이)이 문제가 해결되었습니다. 희망이 도움이됩니다.

관련 문제