有没有一种方法可以设置TextView的样式以使其所有字母都小写?

时间:2019-05-23 07:02:52

标签: java android textview lowercase

nameTextview.setAllCaps(true);,我们可以将所有文本设置为大写字母, 如何设置小写字母?

public class MainActivity extends AppCompatActivity {

private TextView nameTextview;
private Button button1;
private Button button2;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button1=findViewById(R.id.capsonID);
    button2=findViewById(R.id.capsoffID);
    nameTextview = findViewById(R.id.textview1);

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nameTextview.setAllCaps(true);
        }
    });
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nameTextview.  // ???????????? What should I do here ?
        }
    });
}
}

4 个答案:

答案 0 :(得分:0)

尝试这种方式..无论您要设置textview的字符串是什么。 String类提供上下字母的方法。

tv.setText(strings.toLowerCase());

答案 1 :(得分:0)

您可以在此TextView中使用getText()方法,并将文本保存到String对象中。您可以使用toLowerCase()方法将字符串转换为所有小写字母,然后使用setText()方法将修改后的String设置为该TextView 记住将setAllCaps()设置为false

答案 2 :(得分:0)

如其他答案中所述,您可以使用它更改为小写字母:

    nameTextview.setText.nameTextview.getText().toString().toLowerCase());

但是,如果您正在寻找类似setAllCaps的功能,即在不修改原始文本的情况下将文本更改为小写,则应该使用转换方法。

实际上,setAllCaps(true),将字符串更改为大写:

'Hello, This Is a Test' => 'HELLO, THIS IS A TEST'

但是,如果设置setAllCaps(false),则文本更改如下

'HELLO, THIS IS A TEST' => 'Hello, This Is a Test'

输入后将恢复原始文本。

要完成此操作以小写字母,您应该创建这样的类:

public class AllLowTransformationMethod implements TransformationMethod {
    private Locale mLocale;

    public AllLowTransformationMethod(Context context) {
        this.mLocale = context.getResources().getConfiguration().locale;
    }

    public CharSequence getTransformation(CharSequence source, View view) {
        return source != null ? source.toString().toLowerCase(this.mLocale) : null;
    }

    public void onFocusChanged(View view, CharSequence sourceText, boolean focused, int direction, Rect previouslyFocusedRect) {
    }
}

然后,您可以使用此:

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        nameTextview.setTransformation(new AllLowTransformationMethod); 
    }
});

要恢复原始文本:

nameTextview.setTransformation(null); 

答案 3 :(得分:0)

   button1.setOnClickListener {
   tvId.setText(tvId.text.toString().toUpperCase())
   }
   button2.setOnClickListener {
   tvId.setText(tvId.text.toString().toLowerCase())
   }