세 탭이있는 TabHost가 있습니다. 첫 번째 탭의 콘텐츠는 사용자 정의 액티비티의 의도입니다. contentview는 두 개의 EditText와 두 개의 CheckBox (및 버튼)가 포함 된 상대 레이아웃입니다.Android : EditText가 다시 활성화 된 후에 포커스를 얻을 수 없습니다.
각 checbox를 선택하면 하나의 EditText와 다른 체크 박스를 활성화/비활성화 할 수 있습니다. 나는 이렇게 이것에 대해 갔다 :
chkPolaziste.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
entryPolaziste.setFocusable(false);
entryPolaziste.setEnabled(false);
chkOdrediste.setFocusable(false);
chkOdrediste.setEnabled(false);
}
else
{
entryPolaziste.setEnabled(true);
entryPolaziste.setFocusable(true);
chkOdrediste.setEnabled(true);
chkOdrediste.setFocusable(true);
}
}
});
그리고 그게 작동합니다. 하나의 체크 박스가 선택되면 다른 체크 박스와 그의 EditText가 비활성화되고, 체크 박스를 선택 해제하면 EditText와 다른 체크 박스가 활성화됩니다. 하지만, 활성화 된 후에는 EditText에 아무 것도 입력 할 수 없습니다. 그것은 내가 잠길 때 그냥 클릭하고 다른보기로 초점을 전환합니다. 컨트롤이 완전히 활성화되지 않은 것처럼 보입니다.
또한 requestFocus()를 사용하여 다시 활성화 된 EditText에 포커스를 설정하려고 시도했지만 setFocusableInTouchMode()를 시도했지만 어느 것도 작동하지 않았습니다.
저는 안드로이드 장치가 없으므로 에뮬레이터에서만 테스트합니다 (최소 SDK는 1.6입니다).
중요 사항 :이 동작은 터치에서만 나타납니다 (EditText를 클릭하면 정상적으로 작동합니다. 그 이유는 setFocusableInTouchMode 메서드를 시도한 이유입니다). –