正如我的項目要求,我必須突出onClick的表格行。有什麼辦法可以做到這一點?或者請給我提供替代方案?如何突出點擊表格行?
回答
如果你想用股票上點擊亮點像你這樣一個通用的ListView得到,你要設置的每個行的背景是android:background="@android:drawable/list_selector_background"
下面是一個例子:
<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>
然後,在代碼中,
TableRow firstRow = (TableRow) findViewById(R.id.first_row);
firstRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO: do your logic here
}
}
,你應該得到的一大亮點,能排,就像在ListView ...
編輯: 上面會給你的默認主題的列表背景選擇。如果你想更通用的選擇(比如當用戶觸摸行的材料設計選擇器)使用此:
android:background="?android:attr/selectableItemBackground"
同樣適用於不僅僅是TableRows更多。你應該可以在幾乎所有通用小部件上附加onClickListener(TextViews,Buttons等)。
你顯然沒有測試過這一點。所有這些都設置了表格行的背景顏色,並向該行添加了點擊偵聽器,**沒有任何**。 – 2012-02-10 06:49:57
我已經測試過了 - 它在生產中被成功地使用了。你是對的,它確定背景。它設置的是關鍵 - 「@android:drawable/list_selector_background」是單擊ListView中的條目時手機主題的標準高亮部分。 奇怪的是,在發表評論之前,你測試過它嗎? – 2012-02-10 18:10:00
我測試過它,它工作。這正是我正在尋找的:TableRow的按鈕行爲。 – Lekensteyn 2012-04-05 19:17:26
內onclicklistener地址:
tr1.setBackgroundResource(drawable.list_selector_background);
TR1哪裏是你的tablerow的。 (你需要使表格最後才能正常工作)。
謝謝,但是當我按下該行時,它會突出顯示,然後再次回到未加亮的狀態! – 2017-03-12 19:52:58
連我都面臨着同樣的問題塞利勒潘迪特答案的幫助下做了一點改變它,這對我的作品
這是XML TableRow
:
<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">
這是selector.xml
在res\drawable
夾
<?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>
設法遵循,但記住在可繪製文件夾下創建選擇器時,將selector.xml創建爲可繪製資源。 – 2015-07-08 02:21:03
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));
}
}
//...
}
};
其工作。行onclick監聽器的表格佈局並將此代碼放入其中。 – bhruguni 2017-06-02 09:19:30
非常感謝,它解決了我的問題.....你今天救了我 – 2017-11-01 11:47:04
- 1. 突出顯示當表格行點擊並禁用下一行點擊
- 2. 使表格行在點擊時不突出
- 3. 表格行突出
- 4. 流星 - 如何使點擊表格行保持它的顏色突出顯示
- 5. 突出clickablespan點擊
- 6. 如何突出重點在DevExpress gridview點擊行?
- 7. QTextBrowser:如何突出點擊線
- 8. 突出顯示錶格行
- 9. asp.net listview突出顯示點擊行
- 10. jquery:點擊時突出顯示行
- 11. 單擊時突出顯示錶格列
- 12. ImageView沒有突出點擊
- 13. 突出鏈接點擊
- 14. 選中表格行點擊
- 15. 使表格行可點擊
- 16. HTML表格,點擊行號
- 17. 避免點擊表格行
- 18. 在按鈕上切換選定的表格行突出顯示點擊
- 19. 如何勾選複選框(點擊按鈕時)如何使表格行突出顯示?
- 20. 防止複選框和可點擊的表格行衝突
- 21. 如何獲取表格行/表格項目的點擊事件?
- 22. 突出顯示錶格行並選擇表格行點擊時的無線電輸入jquery
- 23. ASP.NET MVC突出顯示鏈接點擊表中的行
- 24. 錶行,突出懸停並改變對點擊
- 25. 單擊表格中的鏈接時突出顯示HTML表格
- 26. 突出顯示和取消突出顯示行上點擊行排列
- 27. 角度網格突出顯示整個行按單元格點擊
- 28. 如何使散點圖突出顯示數據點擊
- 29. 點擊表格?
- 30. 行不突出右擊
有點晚了,但檢查該線程的答案:http://stackoverflow.com/questions/6274343/how-to-change-the-background-color-of-a-tablerow-when-focused – Arnaud 2011-07-21 23:49:30
你可以參考[本鏈接](http://stackoverflow.com/questions/4410420/onclick-change-tablerow-background-color)是指由Josh Clemm給出的答案。 – prateek 2012-04-07 10:02:32
請參見此處的編輯答案:HTTP://stackoverflow.com/a/7022137/2469134 – 2017-03-12 20:02:04