Tôi có một tuỳ chỉnh ListView
. Điều này ListView
chứa 1 Hình ảnh và 6 TextView s. Để truy xuất giá trị tôi đã tạo setOnItemClickListener(...)
. Bất cứ khi nào tôi nhấp vào ListView
làm cách nào để tôi có thể truy xuất tất cả dữ liệu từ 6 TextView s?setOnItemClickListener trên ListView tùy chỉnh
Trả lời
Nếu trong trình nghe bạn có bố cục gốc của mục (giả sử itemLayout
) và bạn đã đưa một số id vào các bản xem trước văn bản, bạn có thể nhận chúng bằng một cái gì đó như itemLayout.findViewById(R.id.textView1)
.
Sample Code:
ListView list = (ListView) findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Object listItem = list.getItemAtPosition(position);
}
});
Trong đoạn code mẫu trên, listItem
nên chứa các dữ liệu được chọn cho textView
.
Tôi không thể cảm nhận được cảm ứng ngay cả khi tôi viết một bánh mì nướng bên trong onItemNhấp vào nó không hiển thị – abhishek
@abhishek, cùng một vấn đề với tôi cũng –
tôi cũng đã có vấn đề tương tự .. Nếu chúng ta suy nghĩ logic một chút chúng ta có thể nhận được câu trả lời .. Nó làm việc cho tôi rất tốt .. Tôi hy vọng u sẽ nhận được nó ..
listviewdemo.xml
<ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="30dp" android:paddingLeft="10dp" android:paddingRight="10dp" />
listviewcontent.xml
- lưu ý rằngTextView
-android:id="@+id/txtLstItem"
<LinearLayout android:id="@+id/listviewcontentlayout" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="horizontal"> <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dp" /> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/txtLstItem" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left" android:shadowColor="@android:color/black" android:shadowRadius="5" android:textColor="@android:color/white" /> </LinearLayout> <ImageView android:id="@+id/img2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dp" /> </LinearLayout>
ListViewActivity.java
- Lưu ý rằngview.findViewById(R.id.txtLstItem)
- như chúng ta thiết lập các giá trị choTextView
bởisetText()
phương pháp chúng tôi nhận được văn bản từTextView
byView
đối tượng được trả về theo phương thứconItemClick
.OnItemClick()
trả về chế độ xem hiện tại.TextView v=(TextView) view.findViewById(R.id.txtLstItem); Toast.makeText(getApplicationContext(), "selected Item Name is "+v.getText(), Toast.LENGTH_LONG).show();**
Sử dụng logic đơn giản này, chúng tôi có thể nhận được các giá trị khác như
CheckBox
,RadioButton
,ImageView
, vvListView List = (ListView) findViewById(R.id.listview); cursor = cr.query(CONTENT_URI,projection,null,null,null); adapter = new ListViewCursorAdapter(ListViewActivity.this, R.layout.listviewcontent, cursor, from, to); cursor.moveToFirst(); // Let activity manage the cursor startManagingCursor(cursor); List.setAdapter(adapter); List.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick (AdapterView <?> adapter, View view,int position, long arg){ // TODO Auto-generated method stub TextView v = (TextView) view.findViewById(R.id.txtLstItem); Toast.makeText(getApplicationContext(), "selected Item Name is " + v.getText(), Toast.LENGTH_LONG).show(); } } );
Tôi có cùng mã nhưng nó không hoạt động cho tôi –
Nếu nó giúp mọi người, tôi thấy rằng vấn đề đã được tôi đã có một android : sự kiện onClick trong tệp bố cục của tôi (mà tôi đã tăng cao cho các hàng ListView). Điều này đã thay thế sự kiện onItemClick.
Nếu câu trả lời ở trên không hoạt động có thể bạn không thêm giá trị trả lại vào phương thức getItem trong bộ điều hợp tùy chỉnh, xem this câu hỏi và xem câu trả lời đầu tiên.
- 1. setOnItemClickListener() không hoạt động trên ListView tùy chỉnh @ Android
- 2. setOnItemClickListener VS setOnItemSelectedListener trong ListView.
- 3. Tùy chỉnh listview cho AlertDialog
- 4. cách lấy đối tượng từ listview trong setOnItemClickListener trong android?
- 5. listview với adapter tùy chỉnh chứa CheckBoxesfunction
- 6. Tùy chỉnh màu của ListView Android?
- 7. ListView Mục bóng + bộ chọn tùy chỉnh
- 8. động thêm hàng tùy chỉnh để ListView
- 9. setOnItemClickListener không hoạt động
- 10. ListView setOnItemClickListener và setOnItemSelectedListener để lưu trữ chỉ mục mục đã chọn
- 11. tùy biến phần listview
- 12. Lưu trạng thái mẫu của ListView tùy chỉnh?
- 13. ListView với Bố cục hàng tùy chỉnh - Android
- 14. Performance vấn đề trên tùy chỉnh phông chữ TextView
- 15. làm thế nào để tùy chỉnh jquery điện thoại di động trên listview nút chia để 3 neo?
- 16. Ghi lớp phủ tùy chỉnh trên iPhone
- 17. Nút home tùy chỉnh trên ActionBar
- 18. Tiêu đề tùy chỉnh trên Amazon S3
- 19. Tệp Jar tùy chỉnh trên Jasper Server
- 20. Chạy ROM tùy chỉnh trên AVD
- 21. Sonata User - Security trên trường tùy chỉnh
- 22. Triển khai NSFastEnumeration trên Lớp tùy chỉnh
- 23. Xóa dòng trên thanh tab tùy chỉnh
- 24. Trình chỉnh sửa tùy chỉnh Python: Đóng tệp trên StopIteration
- 25. Android: Nhận mục listview từ nút bấm trong danh sách tùy chỉnh
- 26. Làm cách nào để triển khai bộ lọc cho BaseAdapter tùy chỉnh với ListView?
- 27. Xóa các mục khỏi một ListView bằng cách sử dụng BaseAdapter tùy chỉnh
- 28. ListView với bộ điều hợp tùy chỉnh, thêm từng thành phần
- 29. Làm thế nào để thiết lập ListView tùy chỉnh trong Fragment android?
- 30. Tùy chỉnh kiểu danh sách phân cách
Cảm ơn bạn rất nhiều bigstones. – kangalert
@kangalert bạn được chào đón.nhớ đánh dấu các câu trả lời được chấp nhận (nhấp vào dấu kiểm bên cạnh câu trả lời), để cho mọi người biết đó là giải pháp làm việc. nó cũng làm tăng danh tiếng của bạn và của người trả lời :) – bigstones