我正在尝试使用Button
以编程方式创建drawable selector
。
完成配置后,我尝试使用Button
方法设置setText()
的文字但不起作用。
这是我的代码:
Button b = new Button(this);
int pxw = (int) getResources().getDimension(R.dimen.level_button_width);
int pxh = (int) getResources().getDimension(R.dimen.level_button_height);
LayoutParams lp = new LinearLayout.LayoutParams(pxw,pxh);
lp.setMargins(8, 8, 8, 8);
b.setLayoutParams(lp);
b.setShadowLayer(8, 0, 0, 0xA8A8A8);
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.level_button));
} else {
b.setBackground(getResources().getDrawable(R.drawable.level_button));
}
b.setTextColor(0xFFFFFF);
b.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 36);
b.setText("heey");
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startlevel(Integer.parseInt((String) ((Button)v).getText()));
}
});
mLinearLevel.addView(b);
这是我的绘画:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@drawable/level_button_disabled" />
<item android:state_pressed="true"
android:drawable="@drawable/level_button_pressed"/>
<item android:drawable="@drawable/level_button_normal"/>
</selector>
结果是一个没有文字的自定义按钮。
它出了什么问题?
提前致谢。
更新:请查看下面的答案。
答案 0 :(得分:0)
解决方案是Color.parseColor()
方法。我在穆罕默德的评论中改变了它并且它有效。
b.setTextColor(Color.parseColor("#FFFFFF"));