返回活动时清除后台行为

时间:2016-05-16 12:41:27

标签: android android-intent

在我的主要活动中,当我点击时,我有一个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按钮。 任何清除背景颜色的解决方案?

4 个答案:

答案 0 :(得分:0)

您可以覆盖'onResume()'方法,您需要将按钮的'setbackgroundColor'设置为默认颜色。

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

答案 1 :(得分:0)

你可以这样做。

首先找到像这样的按钮的默认背景

Drawable d = button.getBackground();

如果您需要再次使用默认背景,请使用此

button.setBackgroundDrawable(d);方法中的

onResume()

使用这些行管理您的代码。

答案 2 :(得分:0)

您可以创建selector并将其分配给xml中的按钮。例如: -

在drawable文件夹中创建一个名为button_background.xml的文件,然后复制下面的选择器代码。

    <?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

中提供颜色参考

然后将drawable分配给按钮,如下所示:

    <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"/>

答案 3 :(得分:0)

在可绘制文件夹中创建如下所示的自定义按钮背景

  

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>
  

使用此作为xml中按钮的背景,如下所示

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

您的代码如下

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