2010-04-18 44 views
16

Tôi có chế độ xem danh sách được điền thông qua các bản ghi từ cơ sở dữ liệu. Bây giờ tôi phải làm cho một số hồ sơ có thể nhìn thấy nhưng không có sẵn để lựa chọn, làm thế nào tôi có thể đạt được điều đó?Làm cách nào để tắt các mục trong Chế độ xem danh sách?

đây là mã của tôi

public class SomeClass extends ListActivity { 
    private static List<String> products; 
    private DataHelper dh; 
    public void onCreate(Bundle savedInstanceState) { 
     dh = new DataHelper(this); 
     products = dh.GetMyProducts(); /* Returns a List<String>*/ 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.myproducts, products)); 
     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 
     lv.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

Các myproducts.xml file layout như sau:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="16sp"> 
</TextView> 

Trả lời

31

Make lớp con của riêng bạn ArrayAdapter có AreAllItemsEnabled() trở lại sai, và xác định isEnabled(int position) để trở về đúng/sai cho một mục nhất định trong tập dữ liệu của bạn.

+13

Hãy cẩn thận với giải pháp này. Tài liệu của BaseAdapter nêu rõ những điều sau đây "Trả về true nếu mục ở vị trí được chỉ định không phải là dấu tách." Điều đó có nghĩa là nếu bạn trả về false thì mục đó là một mục phân cách. Một số điện thoại có thể không vẽ android: divider giữa một mục bình thường và một mục phân cách. – Janusz

+2

Điều đó chắc chắn đúng và tôi đã gặp phải vấn đề đó trước đây; Tôi đã bao gồm một dải phân cách trong chính bố cục hàng và hiển thị/ẩn nó trong getView() hoặc để các mục được bật nhưng bỏ qua các nhấp chuột trên chúng và đặt nền không có trạng thái nhấn để chúng không nhìn có thể nhấp. –

+0

Tuyệt vời để đặt ngăn "Tiêu đề", để có các mục trong danh sách của bạn! – htafoya

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