所以我试图找到一种简单的方法来获取背景颜色或表格行在点击时更改。我一直试图找到一种方法来调用背景颜色并检查它,但我还没有找到一种方法来调用颜色。这就是我现在所拥有的。
RowName = (TableRow) findViewById(R.id.RowName);
RowName.setBackgroundColor(Color.TRANSPARENT);
RowName.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (RowName.equals(Color.TRANSPARENT))
RowName.setBackgroundColor(Color.YELLOW);
else if (RowName.equals(Color.YELLOW))
RowName.setBackgroundColor(Color.TRANSPARENT);
}
});
我知道这是错的。希望你能看到我想要完成的事情。如果没有,我想要做的是让表格行开始透明。当有人点击表格行时,我希望它变为黄色。然后,如果他们再次点击它,我希望它改回透明状态。谢谢。
答案 0 :(得分:8)
您需要将行的背景颜色设置为可绘制的状态列表(处理选择,按下,激活,非激活)。
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
XML应如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active state -->
<item android:state_selected="true" android:state_focused="false"
android:state_pressed="false" android:drawable="@android:color/transparent" />
<!-- Inactive state-->
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false" android:drawable="@android:color/transparent" />
<!-- Pressed state-->
<item android:state_pressed="true" android:drawable="@android:color/yellow" />
<!-- Selected state (using d-pad) -->
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@android:color/yellow" />
</selector>
答案 1 :(得分:2)
所以这就是最终工作的结果。确保您的TableRows已命名。在我创作之前我有
私人TableRow RowName;
我也有
int state = 0;
。然后我添加代码
public void RowName(View view) { switch (state) { case 0: RowName.setBackgroundColor(Color.YELLOW); state = 1; break; case 1: RowName.setBackgroundColor(Color.TRANSPARENT); state = 0; break; } }
要使其工作,请进入您的xml并在OnClick属性中添加RowName或您正在使用的公共void的名称。 享受。