Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改android:drawableLeft on按钮_Android - Fatal编程技术网

更改android:drawableLeft on按钮

更改android:drawableLeft on按钮,android,Android,我有下面的按钮xml,左边有一个图像 我想知道,当用户点击该图像时,如何将其更改为其他图像 <Button android:layout_width="0dp" android:layout_height="24dp" android:gravity="center" android:text="Start" android:textStyle="bold" android:id="@+id/startBtn" android:textAllCa

我有下面的按钮xml,左边有一个图像

我想知道,当用户点击该图像时,如何将其更改为其他图像

 <Button
   android:layout_width="0dp"
   android:layout_height="24dp"
   android:gravity="center"
   android:text="Start"
   android:textStyle="bold"
   android:id="@+id/startBtn"
   android:textAllCaps="false"
   android:layout_weight="2"
   android:drawableLeft="@drawable/ic_keyboard_arrow_up_black_18dp" />

您需要定义一个变量来检查您的按钮是否选中

private int buttonState = 0;

yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (buttonState % 2 == 0) {
               yourButton.setCompoundDrawables(R.drawable.ic_selected, null, null, null);
            } else {
               yourButton.setCompoundDrawables(R.drawable.ic_not_selected, null, null, null);
            }
            buttonState ++;
        }
    });

使用buttonState变量,您可以跟踪按钮的最后状态。

嗨,Emin,谢谢您的回答,但问题是实现切换行为。就像您第一次单击一样,它将更改为图像2,再次单击它将更改回图像1。