我需要一个仅允许数字和:符号的编辑文本验证,并且长度不得超过5个字符。大多数情况下,我会务实地创建此Edittext

    final EditText timeVisited = new EditText(this);
    timeVisited.setId(20);
    timeVisited.setText(Tm);
    timeVisited.setTextColor(Color.BLACK);
    timeVisited.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
    timeVisited.setHint("eg. 14:30");
    timeVisited.setPadding(5,5,5,5);
    timeVisited.setSingleLine(false);
    timeVisited.setLines(1);
    timeVisited.setBackgroundResource(R.drawable.text_bg);
    customerToCatchTblRow.addView(timeVisited);// add the column to the table row here
    LinearLayout.LayoutParams params5 = (LinearLayout.LayoutParams)timeVisited.getLayoutParams();
    params5.setMargins(0, 0, 5, 0); //substitute parameters for left, top, right, bottom
    timeVisited.setLayoutParams(params5);

最佳答案

使用android:digits属性过滤符号:

<EditText
    android:digits="0123456789:"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />


或以编程方式:

 editText.setKeyListener(DigitsKeyListener.getInstance("0123456789:"));

07-24 09:37