2012-04-30 44 views
6

Tôi có một danh sách dài hiển thị dữ liệu trong trình quay số android. Vì vậy, tôi muốn thêm một tùy chọn tìm kiếm cho spinner này? Bất kỳ ai có thể giúp tôi với một mã ví dụ đơn giản .. (Tôi thấy một số câu trả lời liên quan đến điều này nhưng chúng không đủ) ..Cách thêm tùy chọn tìm kiếm vào Android Spinner?

Tôi mới dùng Android và tôi biết thực sự đây không phải là cách chính xác. nhưng tôi muốn thêm loại tùy chọn này vào spinner. Khi bạn nhấn một chữ cái trên hộp tìm kiếm, danh sách các mục được hiển thị trong spinner có liên quan đến chữ cái đó. Cảm ơn rất nhiều.

public void tìm kiếm (Xem xem) {

cursor = db.rawQuery("SELECT * FROM tblRepTeritories WHERE RepCode like?", 
     new String[]{"%" + searchText.getText().toString() + "%"}); 


    SimpleCursorAdapter adapter1 = new SimpleCursorAdapter(
      this, 
      android.R.layout.simple_spinner_item, 
      cursor, 
      new String[] {"TeriCode"}, 
      new int[] {android.R.id.text1}); 

adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
// get reference to our spinner 
Spinner s1 = (Spinner) findViewById(R.id.spinner2); 

s1.setAdapter(adapter1); 


} 
+0

Little bit giải thích nó nhiều hơn .. Và, gửi mã của bạn được thử một mình. – Praveenkumar

+0

@SpK mã tôi đã thử ở trên ..thanks –

+0

Bây giờ, nó hoạt động hay không. – Praveenkumar

Trả lời

1

Sử dụng TextWatcher và sau đó gọi notifyDataSetChanged() trên adapter của bạn:

searchText.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

    } 

    @Override 
    public void afterTextChanged(Editable s) { 
     cursor = db.rawQuery("SELECT * FROM tblRepTeritories WHERE RepCode like?", 
      new String[] {"%" + searchText.getText().toString() + "%"}); 
     adapter1.notifyDataSetChanged(); 

    } 
}); 
Các vấn đề liên quan