Button.setText不起作用

时间:2014-04-25 22:44:10

标签: android text android-button android-selector

我正在尝试使用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>

结果是一个没有文字的自定义按钮。

它出了什么问题?

提前致谢。

更新:请查看下面的答案。

1 个答案:

答案 0 :(得分:0)

解决方案是Color.parseColor()方法。我在穆罕默德的评论中改变了它并且它有效。

b.setTextColor(Color.parseColor("#FFFFFF"));