Tôi đã một ListView dân cư với ListItems tùy chỉnh XML, đây là XML:ListView Android không nổi bật khi một OnClickListener được thiết lập
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
...
</RelativeLayout>
ListView cho thấy một cách chính xác trên màn hình và nếu tôi nhấp hoặc giữ vào một mục nó trở thành màu xanh (tôi đang sử dụng Holo nhẹ Theme)
vấn đề đến khi tôi cố gắng để gán một OnClickListener để xem, bên trong getView trong Hoạt động của tôi kéo dài BaseAdapter:
@Override
public View getView(int position, @Nullable View convertView, ViewGroup parent) {
...
convertView = InflateUtils.inflate(mContext, R.layout.list_item);
...
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mContext, "Test", 2000).show();
}
});
...
}
sau khi thực hiện điều đó, màu mục danh sách đánh dấu không được hiển thị nữa, khi tôi nhấp hoặc giữ một mục danh sách, nền của nó vẫn trắng, thì onClickListener sẽ hoạt động hoàn hảo.
Bạn có gợi ý nào để lấy màu đánh dấu trong khi vẫn giữ kiểu mặc định của HoloLight không?
Những người đã bỏ phiếu, quan tâm để nhận xét về câu trả lời của tôi có vấn đề gì? Bằng cách đó chúng ta sẽ tiến gần hơn đến sự thật. –
tôi đã không, dù sao tôi đã tò mò về OnItemClickListener, bạn có nghĩ rằng điều này sẽ giải quyết vấn đề của tôi? Có bất kỳ vấn đề hiệu suất nào khi sử dụng tách OnClickListener không? - Tôi đã đọc câu hỏi đó, nhưng giải pháp không sử dụng phong cách HoloLight, mà tôi yêu cầu. –
Vâng, nếu các mục của bạn giống nhau, bạn có thể sử dụng một người nghe và phân biệt theo id mục - một đối tượng thay vì có thể là hàng trăm. Đối với holo - bạn có thể sử dụng holo với giải pháp từ câu trả lời đó, sử dụng nền làm nổi bật được gọi là R.drawable.list_selector_holo_dark –