私は24時間形式の時間を00:00から23:59まで許可する編集テキストを持っています
チェックは2つしか残っていません
1. hh は 23 を超えてはならず、mm は 59 を超えてはなりません。ユーザーが入力中または別の編集テキストに移動したときに、これを確認する必要があります。
2.は 1 つのみ (最小と最大) を持つ必要があります:符号
この編集テキストを動的に作成していますコードは次のとおりです
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 for 2:30 PM");
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);
//it checks max input is 5
int maxLength = 5;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
timeVisited.setFilters(FilterArray);
//It allow only numbers and :
InputFilter filter = new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend)
{
for (int i = start; i < end; i++)
{
if (!Character.isDigit(source.charAt(i))&& source.charAt(i) != ':')
{
return "";
}
}
return null;
}
};
timeVisited.setFilters(new InputFilter[]{filter});