Khi yêu cầu dự án của tôi, tôi phải làm nổi bật hàng trên bảng onClick. Có cách nào để làm điều này? Hoặc đề nghị tôi thay thế?Tôi làm cách nào để làm nổi bật hàng của bảng khi nhấp?
Trả lời
Nếu bạn muốn sử dụng các chứng khoán trên nhấp chuột nổi bật như bạn nhận được với một ListView chung chung, bạn muốn thiết lập nền tảng của mỗi hàng là android:background="@android:drawable/list_selector_background"
Dưới đây là một ví dụ:
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0">
<TableRow
android:id="@+id/first_row"
android:background="@android:drawable/list_selector_background" >
... row content ...
</TableRow>
</TableLayout>
sau đó, trong mã,
TableRow firstRow = (TableRow) findViewById(R.id.first_row);
firstRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: do your logic here
}
}
Và bạn sẽ nhận được một hàng nổi bật-thể giống như trong một ListView ...
EDIT: Ở trên sẽ cung cấp cho bạn bộ chọn nền danh sách của chủ đề mặc định. Nếu bạn muốn bộ chọn chung hơn (như bộ chọn thiết kế material design khi người dùng chạm vào một hàng), hãy sử dụng:
android:background="?android:attr/selectableItemBackground"
Điều này cũng áp dụng cho nhiều hơn chỉ TableRows. Bạn sẽ có thể thực hiện điều này trên hầu như bất kỳ tiện ích chung nào có gắn onClickListener (TextViews, Buttons, v.v.).
Bạn rõ ràng chưa thử nghiệm điều này. Tất cả điều này là đặt màu nền của hàng trong bảng và thêm trình nghe nhấp vào hàng, ** không có gì khác **. –
Tôi đã thử nghiệm nó - và nó đang được sử dụng trong sản xuất khá thành công. Bạn nói đúng là nó thiết lập nền. Những gì nó đặt nó là chìa khóa - '@android: drawable/list_selector_background' là tiêu điểm của chủ đề của điện thoại khi bạn nhấp vào một mục trong một ListView. Thật kỳ lạ, trước khi bỏ một bình luận, bạn đã thử nó chưa? –
Tôi đã thử nghiệm nó và nó hoạt động. Đó là chính xác những gì tôi đang tìm kiếm: hành vi nút cho một TableRow. – Lekensteyn
Trong OnClickListener add:
tr1.setBackgroundResource(drawable.list_selector_background);
đâu TR1 là tablerow của bạn. (bạn sẽ cần phải làm cho tablerow cuối cùng cho nó hoạt động).
cảm ơn nhưng khi tôi nhấn hàng, nó được đánh dấu và sau đó trở lại một lần nữa để được bỏ đánh dấu! –
Thậm chí tôi đã phải đối mặt với cùng một vấn đề với sự giúp đỡ của câu trả lời Salil học giả làm một sự thay đổi chút cho nó và làm việc cho tôi
Đây là TableRow
trong xml:
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="5dip"
android:background="@drawable/selector">
Đây là selector.xml
trong res\drawable
thư mục
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background"></item>
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@android:drawable/list_selector_background"></item>
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background" />
<item android:drawable="@android:drawable/list_selector_background"></item>
</selector>
được quản lý để theo dõi, nhưng hãy nhớ trong khi tạo bộ chọn trong thư mục có thể kéo, hãy tạo selector.xml làm tài nguyên có thể kéo. –
String _row_selected = null;
boolean _is_selection_even = false;
private TableLayout TL;
TableRow row_data = new TableRow(this);
row_data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (_row_selected != null) {
if (Integer.parseInt(_row_selected) == TL.indexOfChild(v)) {
if (_is_selection_even) {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(0xFF00FF00);
_is_selection_even = false;
} else {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(Color.WHITE);
_is_selection_even = true;
}
} else {
TL.getChildAt(Integer.parseInt(_row_selected)).setBackgroundColor(Color.WHITE);
v.setBackgroundColor(0xFF00FF00);
_row_selected = null;
_row_selected = TL.indexOfChild(v) + "";
}
} else {
v.setBackgroundColor(0xFF00FF00);
_row_selected = null;
_row_selected = summaryTL.indexOfChild(v) + "";
}
}
});
private OnClickListener tablerowOnClickListener = new OnClickListener()
{
public void onClick(View v)
{
//Highlight selected row
//Highlight selected row
for (int i = 1; i < tblItemDetail.getChildCount(); i++)
{
View row = tblItemDetail.getChildAt(i);
if (row == v)
{
row.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
}
else
{
//Change this to your normal background color.
row.setBackgroundColor(getResources().getColor(android.R.color.transparent));
}
}
//...
}
};
hoạt động của nó. bảng bố trí của người nghe onclick hàng và đặt mã này trong đó. – bhruguni
Cảm ơn rất nhiều, nó đã giải quyết được vấn đề của tôi ..... bạn đã cứu tôi hôm nay –
- 1. Hàng của bảng nổi bật jQuery
- 2. Nhấp đúp vào Làm Nổi bật
- 3. Custom ListView không làm nổi bật ListViewItem khi nhấp vào
- 4. Làm cách nào để làm nổi bật Nút?
- 5. Nêu bật những hàng nhấp của một bảng sọc HTML
- 6. Jquery: có cách nào để làm nổi bật văn bản của Div khi bạn nhấp vào nó không?
- 7. NSButton không có "nhấp vào làm nổi bật"
- 8. IDLE sẽ không làm nổi bật cú pháp của tôi
- 9. Làm cách nào để thêm hàng bảng html phụ khi nhấp vào nút bằng jQuery?
- 10. jQuery: làm nổi bật cả các cột (không phải hàng)
- 11. Làm nổi bật NSToolbarItems
- 12. Làm thế nào để vô hiệu hóa UIButton nổi bật trên nhấp chuột?
- 13. Hiệu ứng làm nổi bật jQuery trên hàng bảng được tạo kiểu với Bootstrap
- 14. Làm cách nào để làm nổi bật các phần của đồ họa trên di chuột?
- 15. jqGrid làm nổi bật hàng mới được thêm
- 16. Tôi làm cách nào để hủy yêu cầu lát bản đồ nổi bật bằng OpenLayers khi thu phóng thay đổi?
- 17. Làm nổi bật nhãn Windows Forms
- 18. Làm thế nào để tôi làm nổi bật OCaml bằng iPhone API?
- 19. Làm nổi bật tiêu đề cột của JTable
- 20. Làm thế nào để vô hiệu hóa làm nổi bật của biểu tượng ứng dụng?
- 21. Tôi làm cách nào để có được rst2html.py bao gồm CSS để làm nổi bật cú pháp?
- 22. Làm nổi bật đầu trang và chân trang của UITableView
- 23. Tùy chỉnh UIButton không làm nổi bật khi chạm vào
- 24. Làm nổi bật độ sâu của thanh toán SVN
- 25. Làm cách nào để bật lên một hộp cảnh báo khi nút làm mới của trình duyệt được nhấp?
- 26. C# - Cách: Mở PDF, làm nổi bật kết quả tìm kiếm và lưu làm nổi bật trở lại PDF
- 27. gvim chuỗi multiline dài làm nổi bật
- 28. Làm nổi bật hàng GridView khi điều kiện được đáp ứng
- 29. Làm nổi bật sửa đổi bộ đệm
- 30. Làm nổi bật cú pháp trong vim
Một chút trễ nhưng hãy kiểm tra câu trả lời của chuỗi này: http://stackoverflow.com/questions/6274343/how-to-change-the-background-color-of-a-tablerow-when-focused – Arnaud
Bạn có thể tham khảo [liên kết này] (http://stackoverflow.com/questions/4410420/onclick-change-tablerow-background-color) tham khảo câu trả lời được đưa ra bởi Josh Clemm. – prateek
vui lòng xem câu trả lời đã chỉnh sửa tại đây: http: //stackoverflow.com/a/7022137/2469134 –