如何将按钮文本设置为大写字母

时间:2013-06-20 12:50:57

标签: android

有没有办法将Button文本设置为第一个字符的大写字母,所有文本都是cap?

布局:

<Button
    android:id="@+id/q1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="13sp"
    android:textColor="#ffffff"
    android:background="@drawable/ic_btn_q_normal" />

的活动:

final Button q1 = (Button) findViewById(R.id.q1);
q1.setText(answers[numbers.get(0)]);
    q1.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

        q1.setBackgroundResource(R.drawable.ic_btn_q_right);

    }
});

answers [numbers.get(0)]是我从数组列表中获得的文本。

我尝试过q1.setAllCaps(true);但它对我不起作用。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用:WordUtils

方法:

大写(String str)

  

将字符串中所有以空格分隔的单词大写。

或: capitalizeFully(String str)

  

将String中所有空格分隔的单词转换为大写单词,即每个单词由一个标题字符组成,然后是一系列小写字符。

答案 1 :(得分:1)

final Button q1 = (Button) findViewById(R.id.q1);
String label = answers[numbers.get(0)];
StringBuilder sb = new StringBuilder();
sb.append( label .substring(0,1) );
sb.append( label .substring(1).toLowerCase() );
label = sb.toString();

q1.setText(label);
    q1.setOnClickListener(new OnClickListener() {
        public void onClick(View v){

        q1.setBackgroundResource(R.drawable.ic_btn_q_right);

    }
});

字符串转换代码取自:What is the simplest way to convert a Java string from all caps (words separated by underscores) to CamelCase (no word separators)?