2016-05-16 9 views
1

私の主な活動では、私がクリックするとsignInボタンがあり、このボタンの背景色が変わり、SignInアクティビティに移動します。アクティビティに戻るときのバックスタックアクションをクリアする

// Button SignInActivity 
    final Button signIn = (Button) findViewById(R.id.btn_sign_in); 
    signIn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      signIn.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
      Intent intent = new Intent(MainActivity.this, SignInActivity.class); 
      startActivity(intent); 
     } 
    }); 

私の問題は、私がMainActivityに戻ってColorAccentバックグラウンドを持つSignInボタンを見つけたときです。 背景色をクリアする方法はありますか?

答えて

0

あなたはこのように行うことができます。

まず見つけますデフォルトの背景を必要とする場合は、この

Drawable d = button.getBackground(); 

のようなボタンのデフォルトの背景には、再びこの

を使用します onResume()方法で

button.setBackgroundDrawable(d);

これらの行を使用してコードを管理してください。

+0

ありがとうございます) –

+0

私の喜び...私の答えは受け入れてください。ハッピーコーディング! :) –

+1

もちろん、やった! –

0

あなたはデフォルトの色にあなたのボタンのsetbackgroundColor」」にする必要がありますあなたの「onResume()」メソッドをオーバーライドすることができます。

@Override 
    public protected onResume(){ 
      signIn.setBackgroundColor(getResources().getColor(R.color.yourcolor)); 
    } 
+0

ご回答ありがとうございます –

0

selectorを作成し、xmlのボタンに割り当てることができます。例: -

drawableフォルダ内に​​というファイルを作成し、以下のセレクタコードをコピーして貼り付けます。

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

     <solid android:color="@color/buttonBackgroundPressed"/> 
     <stroke android:width="1dp" android:color="@color/buttonBorderColor"/> 
    </shape> 
</item> 
<item android:state_focused="true"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

     <solid android:color="@color/buttonBackgroundPressed"/> 
     <stroke android:width="1dp" android:color="@color/buttonBorderColor"/> 
    </shape> 
</item> 
<item> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

     <solid android:color="@color/buttonBackgroundNormal"/> 
     <stroke android:width="1dp" android:color="@color/buttonBorderColor"/> 
    </shape> 
</item> 

次に、このようなボタンに描画可能に割り当てるcolors.xml

における色の参照を提供します

<Button 
android:id="@+id/button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/button_background" 
android:textColor="@color/colorPrimary" 
android:textSize="@dimen/text_size_16"/> 
0

は、あなたの描画可能なフォルダ内に以下のようにカスタムボタンの背景描画可能を作成

以下のように

<Button 
android:id="@+id/button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/button_background" 
/> 

あなたのコード以下のようにXMLに、ボタンの背景として

button_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:drawable="@android:color/darker_gray" 
     android:state_pressed="true"/> 
    <item 
     android:drawable="@android:color/holo_blue_light" 
     /> 
</selector> 

使用これを

final Button signIn = (Button) findViewById(R.id.btn_sign_in); 
    signIn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //signIn.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
      Intent intent = new Intent(MainActivity.this, SignInActivity.class); 
      startActivity(intent); 
     } 
    });