我正在为每个EditText字段中的标记做关键。每个标记不得超过5个标记。我只是不知道如何限制用户键在标记的位置更多我将吐司必须超过5分。以下是我的布局:
这是我的java代码:
public void onClick(View v) {
switch (v.getId()){
case R.id.bContinuous_assess:
String marks1=marks_1.getText().toString();
String marks2=marks_2.getText().toString();
String mark3=marks_3.getText().toString();
num1=Double.parseDouble(marks_1.getText().toString());
num2=Double.parseDouble(marks_2.getText().toString());
num3=Double.parseDouble(marks_3.getText().toString());
sum=num1+num2+num3;
marks_total.setText(Double.toString(sum));
if(marks1.matches("")||marks2.matches("")||mark3.matches("")){
progressDialog=new ProgressDialog(continuous_assessment.this);
progressDialog.setMessage("Submitting marks...");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.show();
Toast.makeText(this, "Please Enter All Attributes.", Toast.LENGTH_SHORT).show();
}else {
new AlertDialog.Builder(this).setTitle("eSystem").setMessage("Confirm marks?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
new Marks().execute();
}
}).setNegativeButton("No",null).show();
break;
}
}
我相信它是在onClick下完成的。升值。
答案 0 :(得分:1)
case R.id.bContinuous_assess:
String marks1=marks_1.getText().toString();
String marks2=marks_2.getText().toString();
String mark3=marks_3.getText().toString();
if (marks1!=null && marks2!=null &&mark3!=null) {
num1=Double.parseDouble(marks_1.getText().toString());
num2=Double.parseDouble(marks_2.getText().toString());
num3=Double.parseDouble(marks_3.getText().toString());
if (num1>5 || num2>5 || num3>5) {
Toast.makeText(this, "Please Enter Marks Upto 5", Toast.LENGTH_SHORT).show();
} else{
sum=num1+num2+num3;
marks_total.setText(Double.toString(sum));
new AlertDialog.Builder(this).setTitle("eSystem").setMessage("Confirm marks?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
new Marks().execute();
}
}).setNegativeButton("No",null).show();
}
} else{
Toast.makeText(this, "Please Enter All Attributes!", Toast.LENGTH_SHORT).show();
}
break;
答案 1 :(得分:0)
您可以将TextWatcher用于editText,不需要等待点击事件
首先在xml中为editText设置android:inputType="number"
或
android:digits="0123456789"
而不是
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged (CharSequence s,int start, int count, int after){
}
@Override
public void onTextChanged (CharSequence s,int start, int before, int count){
String strEnteredVal = edittext.getText().toString();
if (!strEnteredVal.equals("")) {
int num = Integer.parseInt(strEnteredVal);
if (num <= 5) {
edittext.setText("" + num);
} else {
Toast.makeText(this, "Please Enter All Attributes!",
Toast.LENGTH_SHORT).show();
}
}
@Override
public void afterTextChanged (Editable s){
}
});