大家好日子.
我有一个TableLayout,每行有三个TextView.是否仍然可以将OnClickListener添加到整行?我想更改所选行的背景颜色.我通过执行以下操作将OnClickListener设置为TableRow,但背景颜色不会更改:
for(int i =0; i < rowAmount; i++)
{
TableRow tr= new TableRow(this);
TextView rmNo;
TextView s;
TextView p;
rmNo = new TextView(this);
s = new TextView(this);
p = new TextView(this);
rmNo.setText("" + roomNumbers.get(i).toString());
s.setText("" + statuses.get(i).toString());
p.setText("" + priorities.get(i).toString());
tr.addView(rmNo);
tr.addView(s);
tr.addView(p);
tr.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
tr.setBackgroundColor(color.holo_blue_light);
}
});
tblContent.addView(tr);
}
}
我正在创建TableRows和TextViews programmaticaly,因为他们的数据是从数据库中检索的.
这是XML:
<ScrollView
android:id="@+id/scroll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tblTitles">
<TableLayout
android:id="@+id/tblContent"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="@+id/ob">
</TableLayout>
</ScrollView>
任何帮助/想法将不胜感激.
已查找的来源:
How can I highlight the table row on click ?
How to change the background color of a TableRow when focused?
解决方法:
我测试了它,现在它工作正常,尝试使用
tr.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
v.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
}
});
代替…