2010-12-10 7 views
3

Так что я пытаюсь найти простой способ получить цвет фона или строку таблицы, чтобы изменить его щелчок. Я пытался найти способ назвать цвет фона и проверить его, но я не нашел способ назвать цвет. Вот что я имею прямо сейчас.OnClick change tablerow background color

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

В случае, если кто-то ищет поведение цвета фона при нажатии кнопки, см. Http://stackoverflow.com/q/4075356/427545 – Lekensteyn 2012-04-05 19:22:21

ответ

2

Так вот что завелся работает. Убедитесь, что у вас есть имя TableRows. До моего создания у меня есть

private TableRow RowName;

У меня также есть

INT состояние = 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 или имя общественной пустоте, что вы работаете. Наслаждайтесь.

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> 
+0

Хорошо. Круто. Так что я работаю по большей части. Есть ли способ получить его, чтобы он оставался желтым до тех пор, пока он не будет нажат снова? – 2010-12-10 19:54:21