首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android布局xml文件中大写TextView的第一个字母。

在Android布局xml文件中大写TextView的第一个字母。
EN

Stack Overflow用户
提问于 2013-09-04 21:41:31
回答 4查看 16.1K关注 0票数 4

布局xml文件中有一个TextView,如下所示:

代码语言:javascript
运行
复制
<TextView
   android:id="@+id/viewId"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/string_id" />

我的字符串指定如下:

代码语言:javascript
运行
复制
<string name="string_id">text</string>

有没有可能让它在没有java代码的情况下显示"Text“而不是"text”

(也不改变字符串本身)

EN

回答 4

Stack Overflow用户

发布于 2013-09-04 22:29:59

不是的。但是您可以创建一个简单的CustomView扩展TextView,它覆盖setText并将第一个字母大写成大写字母,就像Ahmad这样说的那样,并在您的setText布局中使用它。

代码语言:javascript
运行
复制
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class CapitalizedTextView extends TextView {

    public CapitalizedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        if (text.length() > 0) {
            text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length());
        }
        super.setText(text, type);
    }
}
票数 6
EN

Stack Overflow用户

发布于 2014-10-07 13:02:49

我用Hyrum Hammon的答案设法把所有的单词都大写了。

代码语言:javascript
运行
复制
public class CapitalizedTextView extends TextView {

    public CapitalizedTextView( Context context, AttributeSet attrs ) {
        super( context, attrs );
    }

    @Override
    public void setText( CharSequence c, BufferType type ) {

        /* Capitalize All Words */
        try {
            c = String.valueOf( c.charAt( 0 ) ).toUpperCase() + c.subSequence( 1, c.length() ).toString().toLowerCase();
            for ( int i = 0; i < c.length(); i++ ) {
                if ( String.valueOf( c.charAt( i ) ).contains( " " ) ) {
                    c = c.subSequence( 0, i + 1 ) + String.valueOf( c.charAt( i + 1 ) ).toUpperCase() + c.subSequence( i + 2, c.length() ).toString().toLowerCase();
                }
            }
        } catch ( Exception e ) {
            // String did not have more than + 2 characters after space.
        }
        super.setText( c, type );
    }

}
票数 3
EN

Stack Overflow用户

发布于 2019-03-28 10:07:37

作为Kotlin扩张函数

代码语言:javascript
运行
复制
 fun String.capitalizeFirstCharacter(): String {
        return substring(0, 1).toUpperCase() + substring(1)
    }

textview.text = title.capitalizeFirstCharacter()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18624273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档