2013-04-24 86 views
3

我有ButtondrawableLeft当我点击它时,我只想改变其他图像的drawableleft。我必须使用哪些Java代码?更改按钮的drawableLeft点击按钮时

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"/> 
+0

来吧,你能想出一个一点你自己的代码,不是? – 2013-04-24 14:08:07

+0

你的意思是按下不同的图像,当你释放按钮回到原来的可绘制的,对吧? – Pratik 2013-04-24 14:12:32

+0

没有Pratik,点击后我想要图像改变 – Celta 2013-04-24 14:24:30

回答

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); 
+0

哇,这工作就像我想,谢谢 – Celta 2013-04-24 14:26:30

+0

@Celta很高兴我可以帮助。一定要给它一个upvote! – 2013-04-24 17:14:18

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); 
     } 
    }); 
} 
}