我想修改我的代码,以便在不满足给定条件的情况下不设置用户在字段中输入的值



我正在android studio中使用java编写一段代码来计算学生的sgpa。我已经为它写了一个代码,下面给出。我想修改它,以便用户在editText74、editText75、editText76、editText77、editText78、editText79、editText80、editText81和editText82中输入的值不应超过100。我希望在用户输入值后立即检查此条件。如果他输入的值大于100,则应立即通过提示信息或toast擦除他输入的数据。

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class o3 extends AppCompatActivity {
private EditText editText74;
private EditText editText75;
private EditText editText76;
private EditText editText77;
private EditText editText78;
private EditText editText79;
private EditText editText80;
private EditText editText81;
private EditText editText82;
private Button button28;
private TextView textView181;
private TextView textView182;
float cr,cr1,cr2,cr3,cr4,cr5,cr6,cr7,cr8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_o3);
editText74=(EditText)findViewById(R.id.editText74);
editText75=(EditText)findViewById(R.id.editText75);
editText76=(EditText)findViewById(R.id.editText76);
editText77=(EditText)findViewById(R.id.editText77);
editText78=(EditText)findViewById(R.id.editText78);
editText79=(EditText)findViewById(R.id.editText79);
editText80=(EditText)findViewById(R.id.editText80);
editText81=(EditText)findViewById(R.id.editText81);
editText82=(EditText)findViewById(R.id.editText82);
textView181=(TextView)findViewById(R.id.textView181);
textView182=(TextView)findViewById(R.id.textView182);
button28=(Button)findViewById(R.id.button28);
button28.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
float sub1= Float.parseFloat(editText74.getText().toString());
if(sub1<40){
cr=0;}
else if (sub1>=40 && sub1<45){
cr=4;}
else if(sub1>=45 && sub1<50){
cr=5;}
else if(sub1>=50 && sub1<60){
cr=6;}
else if(sub1>=60 && sub1<70){
cr=7;}
else if(sub1>=70 && sub1<80){
cr=8;}
else if(sub1>=80 && sub1<90){
cr=9;}
else if(sub1>=90 && sub1<=100){
cr=10;}
float sub2 = Float.parseFloat(editText75.getText().toString());
if(sub2 <40){
cr1=0;}
else if (sub2>=40 && sub2<45){
cr1=4;}
else if(sub2>=45 && sub2<50){
cr1=5;}
else if(sub2>=50 && sub2<60){
cr1=6;}
else if(sub2>=60 && sub2<70){
cr1=7;}
else if(sub2>=70 && sub2<80){
cr1=8;}
else if(sub2>=80 && sub2<90){
cr1=9;}
else if(sub2>=90 && sub2<=100){
cr1=10;}
float sub3 = Float.parseFloat(editText76.getText().toString());
if(sub3<40){
cr2=0;}
else if (sub3>=40 && sub3<45){
cr2=4;}
else if(sub3>=45 && sub3<50){
cr2=5;}
else if(sub1>=50 && sub3<60){
cr2=6;}
else if(sub3>=60 && sub3<70){
cr2=7;}
else if(sub3>=70 && sub3<80){
cr2=8;}
else if(sub3>=80 && sub3<90){
cr2=9;}
else if(sub3>=90 && sub3<=100){
cr2=10;}
float sub4 = Float.parseFloat(editText77.getText().toString());
if(sub4 <40){
cr3=0;}
else if (sub4>=40 && sub4<45){
cr3=4;}
else if(sub4>=45 && sub4<50){
cr3=5;}
else if(sub4>=50 && sub4<60){
cr3=6;}
else if(sub4>=60 && sub4<70){
cr3=7;}
else if(sub4>=70 && sub4<80){
cr3=8;}
else if(sub4>=80 && sub4<90){
cr3=9;}
else if(sub4>=90 && sub4<=100){
cr3=10;}
float sub5= Float.parseFloat(editText78.getText().toString());
if(sub5<40){
cr4=0;}
else if (sub5>=40 && sub5<45){
cr4=4;}
else if(sub5>=45 && sub5<50){
cr4=5;}
else if(sub5>=50 && sub5<60){
cr4=6;}
else if(sub5>=60 && sub5<70){
cr4=7;}
else if(sub5>=70 && sub5<80){
cr4=8;}
else if(sub5>=80 && sub5<90){
cr4=9;}
else if(sub5>=90 && sub5<=100){
cr4=10;}
float sub6 = Float.parseFloat(editText79.getText().toString());
if(sub6 <40){
cr5=0;}
else if (sub6>=40 && sub6<45){
cr5=4;}
else if(sub6>=45 && sub6<50){
cr5=5;}
else if(sub6>=50 && sub6<60){
cr5=6;}
else if(sub6>=60 && sub6<70){
cr5=7;}
else if(sub6>=70 && sub6<80){
cr5=8;}
else if(sub6>=80 && sub6<90){
cr5=9;}
else if(sub6>=90 && sub6<=100){
cr5=10;}
float sub7 = Float.parseFloat(editText80.getText().toString());
if(sub7<40){
cr6=0;}
else if (sub7>=40 && sub7<45){
cr6=4;}
else if(sub7>=45 && sub7<50){
cr6=5;}
else if(sub7>=50 && sub7<60){
cr6=6;}
else if(sub7>=60 && sub7<70){
cr6=7;}
else if(sub7>=70 && sub7<80){
cr6=8;}
else if(sub7>=80 && sub7<90){
cr6=9;}
else if(sub7>=90 && sub7<=100){
cr6=10;}
float sub8 = Float.parseFloat(editText81.getText().toString());
if(sub8 <40){
cr7=0;}
else if (sub8>=40 && sub8<45){
cr7=4;}
else if(sub8>=45 && sub8<50){
cr7=5;}
else if(sub8>=50 && sub8<60){
cr7=6;}
else if(sub8>=60 && sub8<70){
cr7=7;}
else if(sub8>=70 && sub8<80){
cr7=8;}
else if(sub8>=80 && sub8<90){
cr7=9;}
else if(sub8>=90 && sub8<=100){
cr7=10;}
float sub9 = Float.parseFloat(editText82.getText().toString());
if((sub9*2)<40){
cr8=0;}
else if (((sub9*2)>=40) && ((sub9*2)<45)){
cr8=4;}
else if(((sub9*2)>=45) && ((sub9*2)<50)){
cr8=5;}
else if(((sub9*2)>=50) && ((sub9*2)<60)){
cr8=6;}
else if(((sub9*2)>=60) && ((sub9*2)<70)){
cr8=7;}
else if(((sub9*2)>=70) && ((sub9*2)<80)){
cr8=8;}
else if(((sub9*2)>=80) && ((sub9*2)<90)){
cr8=9;}
else if(((sub9*2)>=90) && ((sub9*2)<=100)){
cr8=10;}
double result = ((cr*4)+(cr1*4)+(cr2*4)+(cr3*4)+(cr4*4)+(cr5*3)+(cr6*2)+(cr7*2)+(cr8*1)) / 28;
textView181.setText(String.format("%.2f", result)+" /10");
double per= ((sub1+sub2+sub3+sub4+sub5+sub6+sub7+sub8+sub9)*100)/850;
textView182.setText(String.format("%.2f", per)+" %");
}
});
}
}

您需要做的是制作自己的condition,然后将其与Textwatcher 连接

edittext.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
// write your condition here
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){ }
}); 

最新更新