我有一个应用程序,我将一些资源应用于按钮以修改它们的背景。
一切正常,但是当我的应用程序在 onPause 后进入 onResume 时,我无法再设置背景。
我有一组 18 个按钮,当我进入 onResume 时,我调用:
for (int i = 0; i < max; i++) {
Button b = l.get(i);
b.setBackgroundResource(R.color.green);
}
Run Code Online (Sandbox Code Playgroud)
在 li 中有从findViewById().
这仅适用于 for 的最后一个元素,但不适用于其他元素。
任何的想法?
** 编辑 **
这是我用于填充数组的代码
btn_1 = (Button)findViewById(R.id.btn_1);
btn_1.setOnClickListener(this);
l.add(btn_1);
Run Code Online (Sandbox Code Playgroud)
这对我所有的按钮都是重复的。
** 第二次编辑 **
public void onResume() {
btn_1 = (Button)findViewById(R.id.btn_1);
btn_1.setOnClickListener(this);
l = new ArrayList<Button>();
l.add(btn_1);
...
for (int i = 0; i < max; i++) {
Button b = l.get(i);
b.setBackgroundResource(R.color.green);
}
} …Run Code Online (Sandbox Code Playgroud) 我使用 xml 文件为按钮着色。在 xml 中有此代码来定义单击按钮时的颜色。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="@color/mainRaddoppiaButtonBackgroundEnd"
android:endColor="@color/mainRaddoppiaButtonBackgroundStart"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/mainRaddoppiaButtonBackgroundStart" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:startColor="@color/mainRaddoppiaButtonBackgroundEnd"
android:endColor="@color/mainRaddoppiaButtonBackgroundStart"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/mainRaddoppiaButtonBackgroundStart" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="@color/mainRaddoppiaButtonBackgroundStart"
android:endColor="@color/mainRaddoppiaButtonBackgroundEnd"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/mainRaddoppiaButtonBackgroundStart" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item> …Run Code Online (Sandbox Code Playgroud) 您好,我在 xml 中有一个按钮,我OnTouchListener在活动中使用它来button按下和释放。但问题是,当我按下按钮时,背景颜色没有改变。当我扩展时,OnClickListener背景活动可能会发生变化。任何人都可以告诉我的代码有什么问题吗?
public class pushbuttonActivity extends Activity implements OnTouchListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.push_button_layout);
GPIO_0_B = (Button) findViewById(R.id.GPIO_0);
GPIO_0_B.setOnTouchListener((OnTouchListener) this);
}
public boolean onTouch(View v,MotionEvent event) {
switch(v.getId()) {
case R.id.GPIO_0 : GPIOPORT=0;
break;
default : break;
}
if(event.getAction() == MotionEvent.ACTION_DOWN) {
//Do something on touch
} else if (event.getAction() == MotionEvent.ACTION_UP) {
//Do something in release
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
Push_button_layout.xml
<RelativeLayout .........
.................
<Button
android:id="@+id/GPIO_0" …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 onClick 侦听器中调用此方法:
mHelper.launchPurchaseFlow(this,
SKU_INFINITE_GAS, IabHelper.ITEM_TYPE_SUBS,
RC_REQUEST, mPurchaseFinishedListener, payload);
Run Code Online (Sandbox Code Playgroud)
但是因为它在 onClick 侦听器中,所以对 this 的引用不是对类的引用,而是 onClick 侦听器。如果此代码位于 onClick 侦听器中,是否可以传递类引用?
谢谢!
我试图在两个布局之间放置一个按钮.
此外,如果我可以提供帮助,当您开始处理不同的屏幕尺寸保证金时,我不希望这样做.(在此图中,我试图将绿色按钮放在两个布局之间)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@color/busy_white">
<LinearLayout
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="center">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/profile_default_round"
android:background="@drawable/ring_status_clock_in"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="John Doe"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Manager"/>
</LinearLayout>
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/translucent_black_90"
android:padding="16dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_alignParentLeft="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Today Total"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="08:32"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_alignParentRight="true">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Week Total"
android:gravity="right"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="24:32"
android:gravity="center"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-40dp">
</LinearLayout>
</RelativeLayout>
<include layout="@layout/dashboard_clock_in_button" …Run Code Online (Sandbox Code Playgroud) 在xml布局中,当我点击进度条时,我确实看到它位于我希望它的位置,但实时,我看不到它,感觉就像隐藏在按钮下方.

我试过了 :
似乎没有什么工作.
这是我的xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<Button
android:id="@+id/button_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:elevation="1dp"
android:text="test button" />
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button_id"
android:layout_alignTop="@+id/button_id"
android:layout_centerHorizontal="true"
android:indeterminate="true"
android:indeterminateTint="@android:color/holo_blue_dark"
android:visibility="visible" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) android android-layout android-progressbar android-xml android-button
但两者都给出了解决方案,例如更改海拔或平移。
问题是关于在不支持海拔或平移属性的旧版本中将进度栏放在按钮前面。
我怎样才能在 XML 和 Java 中做到这一点?
或者它是无效的。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.business.abdelhafiz.omar.civiltaif.LoginActivity">
<ImageView
android:src="@drawable/home_civil"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/login_progressbar"
android:layout_centerInParent="true"
android:layout_width="@dimen/image_height"
android:layout_height="@dimen/image_height" />
<Button
android:id="@+id/login_email"
android:layout_centerInParent="true"
android:text="@string/login_email"
android:onClick="loginEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/login_anonymous"
android:layout_centerInParent="true"
android:layout_below="@id/login_email"
android:text="@string/login_anonymous"
android:onClick="loginAnonymous"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是一个屏幕截图
我想将进度条放在按钮前面
编辑:
没有什么对我有用,所以当我需要显示进度栏时,我只会隐藏按钮。
感谢您的帮助。
Button我的申请中有一个。当我使用setEnabled(false)它时,它变成灰色。但是,如果我首先修改 的背景Button然后调用setEnabled(false)它,它不会变成灰色(但未Button启用)。为什么会这样?无论发生什么情况,我怎样才能让它变成灰色?
我想简单地将样式应用到这样的主题级别上的所有按钮
<style name="BaseTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
...
<item name="buttonStyle">@style/DefaultButton</item>
</style>
<style name="DefaultButton" parent="Widget.MaterialComponents.Button">
<item name="android:textColor">@color/whatever</item>
</style>
<Button
android:id="@+id/addChannelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_margin="16dp"
android:text="Add room" />
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?它会在 appcompat
// 如果我使用Theme.MaterialComponents.Light.NoActionBar.Bridge,那么它有效
android android-button material-design material-components material-components-android
安卓工作室 3.6
在我的风格。xml
<style name="buttonStyle">
<item name="android:textColor">@color/default_button_textColor</item>
<item name="android:backgroundTint">@color/button_bg_color</item>
<item name="android:textSize">18sp</item>
<item name="android:textAllCaps">true</item>
</style>
<style name="buttonClickStyle">
<item name="android:textColor">@color/button_bg_color</item>
<item name="android:backgroundTint">@color/button_click_bg_color</item>
<item name="android:textSize">18sp</item>
<item name="android:textAllCaps">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在 xml 布局中:
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonStartSearchBluetooth"
style="@style/buttonStyle"
android:layout_width="0dp"
android:layout_height="@dimen/button_height"
android:layout_margin="@dimen/button_margin"
android:onClick="onClickButtonStartSearch"
android:text="@string/start_search"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
Run Code Online (Sandbox Code Playgroud)
当单击按钮时,我尝试像这样更改样式:
dataBinding.buttonStartSearchBluetooth.setTextAppearance(R.style.buttonClickStyle)
Run Code Online (Sandbox Code Playgroud)
但它只改变文本颜色。没变backgroundTint
为什么?
android android-button android-styles material-components material-components-android
android ×10
android-button ×10
material-components-android ×2
android-view ×1
android-xml ×1
java ×1
xml ×1