java 有没有一种方法可以将TextView的所有字母都设置为小写?

qyyhg6bp  于 2023-02-11  发布在  Java
关注(0)|答案(4)|浏览(137)

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 ?
        }
    });
}
}
f1tvaqid

f1tvaqid1#

尝试这种方式..什么你的字符串要设置textview.字符串类提供的方法为小写和大写字母.

tv.setText(strings.toLowerCase());
5uzkadbs

5uzkadbs2#

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

c86crjj0

c86crjj03#

正如在其他答案中提到的,您可以使用此命令更改为小写:

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);
polkgigr

polkgigr4#

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

相关问题