在我的主要活动中,当我点击时,我有一个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 :(得分: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);
}
});