美文网首页
Android-控制EditText输入小数点后N位、

Android-控制EditText输入小数点后N位、

作者: 晴天ccc | 来源:发表于2022-02-25 14:18 被阅读0次

新建工具LengthFilter

public class LengthFilter implements InputFilter {
 private int decimal_length = 0;

 public LengthFilter(int decimal_length) {
     this.decimal_length = decimal_length;
 }

 public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
     if ("".equals(source.toString())) {
         return null;
     }
     String value = dest.toString();
     String[] splitArray = value.split("\\.");
     if (splitArray.length > 1) {
         String dotValue = splitArray[1];
         int diff = dotValue.length() + 1 - decimal_length;
         if (diff > 0) {
             return source.subSequence(start, end - diff);
         }
     }
     return null;
 }
}

layout中设置EditText的输入属性为numberDecimal

    <EditText
        android:id="@+id/inputTF"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="100dp"
        android:background="@color/black"
        android:inputType="numberDecimal"
        tools:ignore="MissingConstraints" />

MainActivity中进行调用

public class MainActivity extends AppCompatActivity {

    private EditText inputTF;

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

        inputTF = findViewById(R.id.inputTF);
        // 设置EditText保留小数点后N位小数
        inputTF.setFilters(new InputFilter[]{new LengthFilter(6)});

    } 
}

相关文章

网友评论

      本文标题:Android-控制EditText输入小数点后N位、

      本文链接:https://www.haomeiwen.com/subject/cavxrrtx.html