替换drawable而不是Another drawable

时间:2018-05-28 11:39:04

标签: android drawable

我使用多功能按钮这意味着一个按钮在不同情况下,它有不同的反应.examle:当文本按钮为是时接受。 如果没有拒绝。我使用Drawable for Textcolor按钮按钮的功能也改变了Drawable的改变。但问题是输出是不同的。应该是什么颜色,不是。颜色与我选择的颜色不同。似乎像两个drawable合并。请指导我

   if (bsc.getText().toString().equals(getResources().getString(R.string.inotpaid))) {
                tfr.setText(R.string.select_pay_way);
                tsc.setText(R.string.also);
                bfr.setText(R.string.app_intro);
                bsc.setText(R.string.site_way);
                bth.setText(R.string.bank_way);
                bth.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_style_trans));
                bth.setTextColor(R.drawable.change_text_color);
            }




<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/blueyellows" android:state_pressed="true"/>
<item android:color="#ffffff"/>
</selector>



<Button
    android:id="@+id/bth"
    android:layout_width="220dp"
    android:layout_height="35dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="11dp"
    android:background="@android:color/transparent"
    android:text="@string/price_que"
    android:textColor="@drawable/change_text_color_black"
    android:textSize="15dp"
    android:visibility="invisible" />

1 个答案:

答案 0 :(得分:0)

您必须使用布尔值来切换按钮。根据价值,它可以改变功能。你可以这样做。

private boolean isButtonPressed = false;

 public void onClick(View v) {
            if (isButtonPressed) {
                isButtonPressed = false;
            } else {
                isButtonPressed = true;
            }
       }

现在根据isButtonPressed的值,您可以为按钮提供不同的功能,如:

if(isButtonPressed) {
     button.setBackground(Color.BLACK);
     } else {
     button.setBackground(Color.WHITE);
      }
   }

我希望这很有帮助。