OnClick изменить цвет фона tablerow
Итак, я пытаюсь найти простой способ получить цвет фона или строку таблицы, чтобы изменить его щелчок. Я пытался найти способ назвать цвет фона и проверить его, но я не нашел способ назвать цвет. Вот что я имею прямо сейчас.
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);
}
});
Я знаю, что это неправильно. Надеюсь, вы увидите, чего я пытаюсь достичь. Если нет, то я хочу, чтобы начало строки таблицы было прозрачным. Когда кто-то нажимает на строку таблицы, я хочу, чтобы она изменилась на желтый. Затем, если они снова нажмут на него, я хочу, чтобы он снова изменился на прозрачный. Благодарю.
Ответы
Ответ 1
Итак, вот что заработало. Убедитесь, что у вас есть имя TableRows. До моего создания у меня есть
private 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 или имя общедоступной пустоты, с которой вы работаете.
Наслаждайтесь.
Ответ 2
Вам нужно установить цвет фона вашей строки в список состояний, который можно вычертить (который обрабатывает выбранный, нажатый, активный, неактивный).
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>