2010-08-16 30 views
17

Có một EditText và TextView trong Hoạt động của tôi. Tôi muốn đặt trọng tâm vào TextView khi Activity bắt đầu. Tôi đã sử dụng mã sau:Làm cách nào để đặt tiêu điểm trên TextView khi Hoạt động bắt đầu?

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

Nhưng mã không hoạt động. EditText luôn nhận được tiêu điểm khi hoạt động bắt đầu.

Có ai giúp được không?

Cảm ơn.

Trả lời

13

Điều này được mong đợi khi bạn khởi động Hoạt động bằng màn hình cảm ứng. Khi ở "chế độ cảm ứng", chỉ một vài Chế độ xem (EditText và ListView) có thể nhận tiêu điểm. Nếu bạn khởi động ứng dụng bằng cách sử dụng bi xoay, bạn sẽ thấy tiêu điểm trên TextView. Những gì bạn thấy là kết quả chính xác và mong đợi.

+1

Cách làm ngược lại. Ví dụ, tôi có một editfield số như đối tượng ui đầu tiên, và luôn luôn nhận được tập trung và bật lên bàn phím. Tôi không muốn bàn phím bật lên. – Pentium10

+0

Vì vậy, tôi cần đặt TextView là có thể lấy nét ở chế độ cảm ứng? – user256239

11

Tôi đã xem xét câu hỏi của bạn ngay bây giờ. Có lẽ sau 2 năm bạn đã tìm thấy một giải pháp. Nhưng tôi viết nó ở đây cho những người khác sẽ đi qua với điều này trong tương lai. Điều duy nhất bạn phải làm là đi đến số AndroidManifest.xml, tìm số Activity mà bạn muốn có hành vi này và thêm android:windowSoftInputMode="stateHidden" này. Vì vậy, khi bắt đầu Activity, không có bàn phím nào được hiển thị cho đến khi bạn chạm vào đối tượng EditText.

8

Nếu ai vẫn còn thắc mắc, bạn có thể sử dụng sau trong xml bố trí của bạn để tạo ra một thể đặt tiêu điểm TextView trong chế độ cảm ứng:

android:focusableInTouchMode="true" 
2

Thêm tài sản TextView trong cách bố trí

android:focusable="false" 

Đó là công việc cho tôi.

0

Bạn có thể đặt tiêu điểm cho bất kỳ tiện ích con hoặc TextView nào từ xml hoạt động. Chỉ cần thêm requestFocus trước khi kết thúc TextView.

<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> 
4

Để yêu cầu tập trung vào TextView bạn cần phải thiết lập focusable="true"focusableInTouchMode="true" như sau:

<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

Sử dụng này:

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

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

này có tập trung tắt của EditText đặt nó trên TextView.

Các vấn đề liên quan