Java Android表行onClickListener
我在Android中尝试触发表布局上的事件时遇到了一些问题。以下是我用来动态填充表格布局的代码:Java Android表行onClickListener,java,android,mysql,sql,onclicklistener,Java,Android,Mysql,Sql,Onclicklistener,我在Android中尝试触发表布局上的事件时遇到了一些问题。以下是我用来动态填充表格布局的代码: private void BuildTable() { try { DatabaseAdapter mDbHelper = new DatabaseAdapter(Category.this); mDbHelper.open(); CategoryController cc = new CategoryController(mDbHelper.
private void BuildTable() {
try {
DatabaseAdapter mDbHelper = new DatabaseAdapter(Category.this);
mDbHelper.open();
CategoryController cc = new CategoryController(mDbHelper.open());
Cursor mCur = mDb.rawQuery(cc.getAllCat(), null);
if (mCur.getCount() != 0) {
if (mCur.moveToFirst()) {
// Setting table header
TableRow row = new TableRow(this);
row.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT));
do {
int cols = mCur.getColumnCount();
row = new TableRow(this);
for (int j = 1; j < cols; j++) {
// Dynamically load data fetch from database
// into table layout
TextView tv = new TextView(this);
tv.setLayoutParams(new TableRow.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
tv.setPadding(5, 5, 10, 5);
tv.setGravity(Gravity.LEFT);
tv.setText(mCur.getString(j));
row.addView(tv);
row.setId(j);
}
row.setClickable(true);
row.setOnClickListener(tablerowOnClickListener);
table_layout.addView(row);
} while (mCur.moveToNext());
}
}
} catch (SQLException mSQLException) {
throw mSQLException;
}
}
我的问题是,当我高亮显示某一行并再次选择另一行时,先前高亮显示的行仍保持相同的高亮显示背景色。我想知道如何解决它
提前感谢。提供的
表格布局与表格RowOnClickListener
在同一范围内,请按如下方式更改侦听器:
private OnClickListener tablerowOnClickListener = new OnClickListener()
{
public void onClick(View v)
{
//Highlight selected row
for (int i = 0; i < table_layout.getChildCount(); i++)
{
View row = table_layout.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));
}
}
//...
}
};
private OnClickListener表rownclicklistener=new OnClickListener()
{
公共void onClick(视图v)
{
//突出显示选定行
对于(int i=0;i
遍历TableLayout中的所有行,突出显示单击的行,并将其他行设置为常规颜色。@MikeM。你能给我举个例子吗?当然可以。给我一分钟;我在手机上。
private OnClickListener tablerowOnClickListener = new OnClickListener()
{
public void onClick(View v)
{
//Highlight selected row
for (int i = 0; i < table_layout.getChildCount(); i++)
{
View row = table_layout.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));
}
}
//...
}
};