单击按钮时更改按钮的drawableLeft

时间:2013-04-24 14:04:41

标签: android button onclick android-drawable xml-drawable

我有Button drawableLeft,当我点击它时,我想只更改另一张图片的drawableleft。我必须使用什么java代码?

XML

<Button
    android:id="@+id/docli_btn_apagar"
    android:layout_width="200dp"
    android:layout_height="70dp"
    android:background="@android:color/transparent"
    android:onClick="ApagarLinha"
    android:drawableLeft="@drawable/trash"
    android:text="@string/apagar" 
    android:textAppearance="?android:attr/textAppearanceLarge"/>

2 个答案:

答案 0 :(得分:6)

这将在按钮的onClick()处理程序

中调用
// get your button
Button docli_btn_apagar = (Button) findViewById(R.id.docli_btn_apagar );

// get the drawable
Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );

// set the drawable left
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds( img, null, null, null );

或者:

// You can skip the drawable object directly, by using ints/IDs
docli_btn_apagar.setCompoundDrawablesWithIntrinsicBounds(R.drawable.smiley, 0, 0, 0);

答案 1 :(得分:0)

public class AsyncClassTest extends Activity {

String strMessage;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.docli_btn_apagar);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            ((Button) view).setCompoundDrawables(getResources().getDrawable(android.R.drawable.btn_plus), null, null, null);
        }
    });
}
}