2010-12-10 45 views
3

私は、クリックしたときに背景色や表の行を変更する簡単な方法を見つけようとしています。私は、背景色が何であるかを調べて確認する方法を見つけようとしていましたが、色を呼び出す方法が見つかりませんでした。ここに私が今いるものがあります。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); 
     } 
    }); 

私は間違っていることを知っています。うまくいけば、私が達成しようとしているものを見ることができます。もしそうでなければ、私がしたいことはテーブル行を透明にすることです。誰かがテーブルの行をクリックすると、黄色に変わります。その後、再びクリックすると、透明に戻ってきます。ありがとう。

+0

ボタンのような背景色の動作を探している場合は、http://stackoverflow.com/q/4075356/427545 – Lekensteyn

答えて

2

は作業巻き上げものです。 TableRowsという名前が付いていることを確認してください。私が作成する前に私は持っています

private TableRow RowName;

私も持っている

int型の状態= 0;

。私は、あなたのXMLにとのOnClickプロパティに行く、それが仕事を得るために

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; 
    } 
} 

コードを追加RowNameまたはあなたが作業している公共のボイドの名前を追加します。 お楽しみください。

8

行の背景色を状態リスト描画可能(select、pressed、active、non-activeを処理する)に設定する必要があります。

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

を参照してください。クール。だから私は大部分のために働いている。もう一度押すまで黄色を残すようにする方法はありますか? –

+0

あなたは今何をしているのか分かります。さて、州のリストは、おそらくあなたが望むものではなく、あなたが元々持っていたものに似ています。あなたはたくさんの行を持っていますか?その数がなければ、(現在の背景を見るのではなく)行の状態を保存する変数を保持することができます。 –

+0

私は20と25の間に行があります。 –