编辑文本最大长度并在texview中显示长度

Jer*_* Me 7 android

我有一个编辑文本和一个文本视图,我想在我的编辑文本中设置一个Max长度,它在我的文本视图中显示,每次用户输入一个字符时,它将减去字符数.例如,我将编辑文本的最大长度设置为150,如果用户输入150个字符,则他/她不能再输入.

如何解决这个问题?

Mic*_*ski 15

要设置EditText的最大长度(选择一个或另一个):

  1. 在XML文件中(推荐),使用属性android:maxLength="150"Ex:

    <EditText
        android:id="@+id/yourEditTextId"
        ...
        android:maxLength="150" />     
    
    Run Code Online (Sandbox Code Playgroud)
  2. 以编程方式(在您的onCreate方法中),如下所示:

    EditText et = (EditText)findViewById(R.id.yourEditTextId);
    et.setFilters(new InputFilter[] { 
        new InputFilter.LengthFilter(150) // 150 is max length
    });
    
    Run Code Online (Sandbox Code Playgroud)

要保留EditText中剩余长度的计数器:

在你的onCreate方法中添加这个监听器(或任何地方,但它有意义onCreate):

final EditText et = (EditText)findViewById(R.id.yourEditTextId);
et.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
        TextView tv = (TextView)findViewById(R.id.yourTextViewId);
        tv.setText(String.valueOf(150 - et.length()));
    }

    @Override
    public void onTextChanged(CharSequence s, int st, int b, int c) 
    { }
    @Override
    public void beforeTextChanged(CharSequence s, int st, int c, int a) 
    { }
});
Run Code Online (Sandbox Code Playgroud)