2011-12-27 18 views
17

Tôi đang chọn văn bản cho AutoCompleteTextView.Sau khi tôi muốn áp dụng setonclicklistener cho văn bản đã chọn.if bất kỳ ý tưởng nào.cách đặt setOnClickListener cho AutoCompleteTextView?

ArrayAdapter<String> arrAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, sampleACTV); 
AutoCompleteTextView ACTV = (AutoCompleteTextView) findViewById(R.id.spinner); 
ACTV.setAdapter(arrAdapter); 

} 
private static final String[] sampleACTV = new String[] 
     { "android","androidpeople.com","iphone","blackberry" }; 

trong ví dụ của tôi, tôi đang chọn một mặt hàng như android gọi một ý định đi đến Acitivity tổ

+0

http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener) –

Trả lời

50

Có các trình nghe nhấp chuột khác nhau trong AutoCompleteTextView.

Cách đầu tiên là trong bố cục xml, bạn có thể xác định thuộc tính onCLick, với hàm bạn muốn được gọi, trong ví dụ bên dưới, được nhấp.

<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:onClick="clicked" /> 

Sau đó, trong hoạt động của bạn, bạn xác định chức năng được nhấp.

public void clicked(View v) { 
    // on click do .. 
} 

Hoặc bạn có thể đặt nó trực tiếp trong mã của bạn:

ACTV.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     finish(); 
    } 
}); 

Nếu bạn muốn thiết lập người nghe nhấp chuột khi người dùng nhấp vào một mục trong danh sách thả xuống có một phương pháp khác, các setOnItemClickListener.

ACTV.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick (AdapterView<?> parent, View view, int position, long id) { 
     //... your stuff 
    } 
}) 

Và bạn có một lựa chọn cuối cùng, để thiết lập các listener nhấp chuột khi người dùng thực sự chọn một mục trong danh sách thả xuống bằng setOnItemSelectedListener.

ACTV.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected (AdapterView<?> parent, View view, int position, long id) { 
     //... your stuff 
    } 
    @Override 
    public void onNothingSelected (AdapterView<?> parent) { 
     //... your stuff 
    } 
}) 

Tài liệu tham khảo:

http://developer.android.com/reference/android/widget/AutoCompleteTextView.html

Chúc may mắn!

+1

Bạn có nghĩ rằng phương pháp 'click' phải có' (dạng xem) 'làm đối số? –

+0

Nếu không +1 cho nỗ lực. –

+0

Tệ của tôi, tôi đã bỏ lỡ nó. Đã chỉnh sửa! Cảm ơn vì sự đúng đắn của bạn. – caiocpricci2

2

Bạn cần phải tạo Tuỳ chỉnh Adaptor và gán sự kiện OnClick để xem trong getView()

+1

Điều đó có tác dụng, nhưng đó không phải là giải pháp tốt ... –

+1

Ai đã nói điều này không phải là một gợi ý tốt? Bạn đang chỉ định một lần nhấp vào một chế độ xem và điều đó thật tự nhiên phải không? –

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