如何从条件语句中检索编辑文本值



我无法检索代码中的数据。如果用户在if else语句中提到的范围内输入数字,则应返回整数值。

示例:如果我在et1中输入 46,那么我应该在按下按钮n1时得到 6bt1.

parseInt()只检索输入的值,请帮忙,谢谢。

public class mt11 extends AppCompatActivity {
private EditText et1, et2;
private Button bt1;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mt11);
et1 = findViewById(R.id.mt1011);
// et2 = (EditText) findViewById(R.id.mt1012);
bt1 = (Button) findViewById(R.id.mt1sgpa1);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int num = 0;
int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;
if (num >= 0 && num <= 41) {
num = F ;
}
else if (num >= 42 && num <= 44) {
num = E;
}
else if (num >= 45 && num <= 59) {
num = D;
}
else if (num >= 60 && num <= 69) {
num = C;
}
else if (num >= 70 && num <= 79) {
num = B;
}
else if (num >= 80 && num <= 89) {
num = A;
}
else {
num = S;
}

int n1 = Integer.valueOf(et1.getText().charAt(num));
// int n2 = Integer.parseInt(et2.getText().toString());
AlertDialog alertDialog = new AlertDialog.Builder(mt11.this).create();
alertDialog.setTitle("New Semester");
alertDialog.setMessage("Your Grade is : " + String.valueOf(n1));
//Showing Alert Message
alertDialog.show();
}
});
}
}

您可以创建为方法,并在所需的任何位置调用,如下所示。

公共类 MT11 扩展了 AppCompatActivity {

private EditText et1, et2;
private Button bt1;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mt11);
et1 = findViewById(R.id.mt1011);
// et2 = (EditText) findViewById(R.id.mt1012);
bt1 = (Button) findViewById(R.id.mt1sgpa1);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showGrade(calculateGrage(et1.getText().toString()));
}
});
}
private String calculateGrage(String range) {
int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;
int num = 0, result = 0;
try {
num = Integer.parseInt(range);
} catch (NumberFormatException nfe) {
//Not in correct format
}
if(num == 0 || num < 0) {
result = F;
} else {
if (num <= 41) {
result = F;
} else if (num <= 44) {
result = E;
} else if (num <= 59) {
result = D;
} else if (num <= 69) {
result = C;
} else if (num <= 79) {
result = B;
} else if (num <= 89) {
result = A;
} else {
result = S;
}
}
return String.valueOf(result);
}
private void showGrade(String grade) {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("New Semester");
alertDialog.setMessage("Your Grade is : " + grade);
//Showing Alert Message
alertDialog.show();
}

}

将代码更改为以下内容:

int num = 0;
try {
num = Integer.parseInt(et1.getText().toString());
} catch (NumberFormatException nfe) {
//Not in correct format
}
int grade = 0;
int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;
if (num >= 0 && num <= 41) {
grade = F ;
}
else if (num >= 42 && num <= 44) {
grade = E;
}
else if (num >= 45 && num <= 59) {
grade = D;
}
else if (num >= 60 && num <= 69) {
grade = C;
}
else if (num >= 70 && num <= 79) {
grade = B;
}
else if (num >= 80 && num <= 89) {
grade = A;
}
else {
grade = S;
}

然后

alertDialog.setMessage("Your Grade is : " + String.valueOf(grade));

我想你会得到你想要的。

最新更新