Hi All,
I have a Table layout defined in my activity XML. Via code I add rows and
buttons to this table layout.
When I click on the button I wish to change the background color of the
button, but it is not happening.
The logic I have to update the background color works if I use Gridview in
conjunction with ButtonAdapter (which I wrote using ImageAdapter from
Android website).
Questions:
1. Can someone please advice me what the error is in the following code (in
the onClick function when I try to update the button background color)?
2. Is it better to use GridView to show rows of buttons or table layout? If
there is any advantage over using one to the other it would be worth
knowing.
My code is as follow:
TableLayout table = (TableLayout) findViewById(R.id.tableLayout1);
table.removeAllViews();
for (int row = 1; row <= some_row_counter; row++)
{
TableRow tr = new TableRow(this);
for (int column = 1; column <= some_column_counter; column++)
{
final Button btn = new Button(this);
btn.setText(some_array[index].btnTxt);
btn.setId(some_array[index].btnId);
btn.setBackgroundColor(Color.RED);
btn.setOnClickListener(new OnClickListener()
{
private boolean isChecked = false;
@Override
public void onClick(View v)
{
isChecked = !isChecked;
Drawable d = v.getBackground();
int backgroundColor = (isChecked ? Color.BLUE : Color.RED);
PorterDuffColorFilter filter = new
PorterDuffColorFilter(backgroundColor, PorterDuff.Mode.SRC_ATOP);
d.setColorFilter(filter);
d.invalidateSelf();
}
});
tr.addView(btn);
// break if index reaches some_array max size
}
table.addView(tr);
// break if index reaches some_array max size
}
Thanks for your time.
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en