2010-08-16 15 views
17

내 활동에 EditText 및 TextView가 있습니다. Activity가 시작될 때 TextView에 포커스를 설정하려고합니다. 다음 코드를 사용했습니다 :활동이 시작될 때 TextView에 포커스를 설정하는 방법?

TextView myTextView = (TextView) findViewById(R.id.my_text_vew); 
    myTextView.setFocusable(true); 
    myTextView.setOnClickListener(this); 
    myTextView.requestFocus(); 

그러나 코드는 작동하지 않습니다. EditText는 활동이 시작될 때 항상 초점을받습니다.

아무도 도와 줄 수 있습니까?

감사합니다.

답변

13

이것은 터치 스크린을 사용하여 활동을 시작할 때 예상됩니다. "터치 모드"에서는 몇 개의 뷰 (EditText 및 ListView) 만 포커스를받을 수 있습니다. 트랙볼을 사용하여 응용 프로그램을 시작하면 TextView에 초점을 맞 춥니 다. 당신이보고있는 것은 정확하고 기대되는 결과입니다.

+1

반대 방법. 예를 들어, 첫 번째 UI 개체로 숫자 editfield가 있고 포커스와 팝업을 항상받습니다. 나는 키보드가 팝업되는 것을 원하지 않는다. – Pentium10

+0

그래서 터치 모드에서 TextView를 포커스 할 수있게 설정해야합니까? – user256239

11

이제 귀하의 질문에 대한 답변을 얻었습니다. 어쩌면 2 년 후에 해결책을 찾았을 것입니다. 그러나 나는 미래에이 문제에 직면하게 될 다른 사람들을 위해 여기에 적는다. 사용자가해야 할 일은 AndroidManifest.xml으로 이동하고 Activity에서이 동작을 원하는 내용을 찾은 다음 android:windowSoftInputMode="stateHidden"을 추가하십시오. 따라서 Activity의 시작 부분에 EditText 개체를 터치 할 때까지 키보드가 표시되지 않습니다.

8

사람이 여전히 궁금해하는 경우, 당신은 터치 모드에서 텍스트 뷰의 포커스를 확인하기 위해 귀하의 레이아웃 XML에서 다음을 사용할 수 있습니다

android:focusableInTouchMode="true" 
2

android:focusable="false" 

그것은 작업의 레이아웃에 텍스트 뷰 속성 추가를 나를 위해.

0

활동의 XML에서 위젯이나 TextView로 포커스를 설정할 수 있습니다. TextView가 끝나기 전에 requestFocus을 추가하기 만하면됩니다.

<AutoCompleteTextView 
     android:id="@+id/autoCompleteTextView2" 
     android:layout_width="470dp" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="90dp" 
     android:layout_toEndOf="@+id/textView2" 
     android:ems="10" 
     android:textColor="#455A64" 
     android:textColorHint="#455A64" 
     android:textSize="27sp"> 

     <requestFocus /> 
    </AutoCompleteTextView> 
당신이 focusable="true"를 설정해야합니다 텍스트 뷰에 포커스를 요청하기 위해
4

focusableInTouchMode="true"는 다음과 같이

<TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Heading" 
      android:textSize="20sp" 
      android:textStyle="bold" 
      android:focusable="true" 
      android:focusableInTouchMode="true"> 
       <requestFocus /> 
    </TextView> 
2

사용이 :

EditText mEditText = (EditText) findViewById(R.id.edit_text); 
TextView myTextView = (TextView) findViewById(R.id.my_text_vew); 

mEditText.setFocusable(false); 
myTextView.setFocusable(true); 

이것은 글고 떨어져 초점 소요은 TextView에 저장합니다.

관련 문제