2012-11-08 15 views
8

Tôi muốn TextView vẽ bằng nền màu khác khi được nhấn. Các xml dưới đây chứa một Button và TextView, cả hai đều chỉ định một Selector làm nền của chúng. Nút hoạt động như mong đợi, nhưng TextView không thay đổi màu khi được nhấn. Có cách nào để thực hiện công việc này cho TextView không?Android: Cách sử dụng bộ chọn cho nền của một TextView?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
    <TextView 
     android:text="temporary text view" 
     android:layout_width="wrap_content" 
     android:layout_height="100dip" 
     android:background="@drawable/blackselector" 
     />  
    <Button 
     android:text="temporary button" 
     android:layout_width="wrap_content" 
     android:layout_height="100dip" 
     android:background="@drawable/blackselector" 
     /> 
</LinearLayout> 

selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <color android:color="#FF0000" /> 
    </item> 
    <item> 
     <color android:color="#00FF00" /> 
    </item> 
</selector> 

Trả lời

21

Set này để TextView của bạn:

android:clickable="true" 
+1

Thú vị như thế nào câu trả lời của tôi đã được đăng trước đó, nhưng không được chấp nhận. Hmm. –

+0

@PaulBurke Vâng, tôi cũng tự hỏi. Nhưng trong phòng thủ của tôi, tôi không thấy rằng có một câu trả lời khác tại thời điểm tôi đăng tải của tôi. Tôi đoán ab11 did'nt nhận thấy câu trả lời đã được đăng trước đó. Nhưng tôi đã upvote của bạn. – Ahmad

+2

Không phải lo lắng. Rõ ràng không phải lỗi của bạn (tôi thực sự có ý định bình luận về câu hỏi). Cảm ơn bạn đã upvote! :-) –

9

Thêm

android:clickable="true" 
android:focusable="true" 
android:focusableInTouchMode="true" 
4

ở trên về việc thiết nhấp vào để đúng là đúng. Ngoài ra, nếu bạn thêm bộ onClickListener Android có thể nhấp vào đúng cho bạn một cách tự động.

// From the View class. 
public void setOnClickListener(OnClickListener l) { 
    if (!isClickable()) { 
     setClickable(true); 
    } 
    getListenerInfo().mOnClickListener = l; 
} 
Các vấn đề liên quan