2014-12-07 2 views
0

나는 안드로이드 용 앱을 개발 중이며 현재는 성적을 계산하는 유일한 방법이 있습니다. 현재 학년에 해당하는 입력란과 가능한 시험 성적을받은 입력란이 있으며 그 다음에는 최종 성적이 표시됩니다. 그러나 적어도 하나의 상자에 값이 없으면 충돌합니다. 최종 값이 null인지 감지하기 위해 if 문을 만들려고했으나 작동하지 않았습니다. 여기에 내 코드입니다 :Android에서 null EditText 값을 처리하는 방법은 무엇입니까?

public void sendMessage(View view){ 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText grade = (EditText) findViewById(R.id.grade1); 
    EditText exam = (EditText) findViewById(R.id.grade2); 
    String stringGrade = (grade.getText().toString()); 
    String stringExam = (exam.getText().toString()); 
    double finalResult = (Double.parseDouble(stringGrade) * .8) + (Double.parseDouble(stringExam) * 0.2); 
    String finalResultString = String.valueOf(finalResult); 
    if (finalResultString == null){ 
     finalResultString = "0"; 
    } else { 
    intent.putExtra(EXTRA_MESSAGE, finalResultString); 
    startActivity(intent); 
}} 

여기에 렌더링하는 코드는 그 :

Intent intent = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 

    TextView textView1 = new TextView(this); 
    textView1.setTextSize(30); 
    textView1.setText("Your final would be " + message); 

    setContentView(textView1); 

그냥 참조를 들어, 0.8 및 0.2은 현재 수준의 80 %로 가중되기 때문이고, 시험 20 %의 가중치가 부여됩니다. 상자에 아무것도 넣지 않으면 충돌을 일으키지 않도록 어떻게 만들 수 있습니까?

+0

시험의 경우 * stringGrade *와 * stringExam *하지 * finalResult * – Rami

+0

고마워요을 계산하기 전에 ""같음! 문제가 해결되었습니다. 나중에 참조하려면 stringExam! = ""대신! stringExam.equals ("")를 사용해야합니다. – Saamoz

+0

문제를 해결했으면 하나의 대답을 수락하거나 나중에 참조 할 수 있도록 해답을 추가하십시오. – Rami

답변

0

usernameEditText.getText().toString();가 null을 반환하지 않을 것입니다. 빈 문자열을 반환합니다. finalResult을 계산하기 전에 할 수있는 일은 stringGrade를 검사하고 stingExam은 비어 있지 않은 숫자 값이고 하나가 아닌 경우 연산을 중지하는 것입니다. 즉

String stringGrade = (grade.getText().toString()); 
String stringExam = (exam.getText().toString()); 

if (stringGrade.isEmpty() || stringExam.isEmpty()) { 
    Toast.makeText(this, "Invalid values", Toast.LENGTH_SHORT); 
    return; 
} 
0

이 시도 :

public void sendMessage(View view){ 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText grade = (EditText) findViewById(R.id.grade1); 
    EditText exam = (EditText) findViewById(R.id.grade2); 
    String stringGrade = (grade.getText().toString()); 
    String stringExam = (exam.getText().toString()); 
    if(stringGrade.equals("")){ 
     stringGrade = "0"; 
    } 
    if(stringExam.equals("")){ 
     stringExam= "0"; 
    } 
    double finalResult = (Double.parseDouble(stringGrade) * .8) + (Double.parseDouble(stringExam) * 0.2); 
    String finalResultString = String.valueOf(finalResult); 
    if (finalResultString == null){ 
     finalResultString = "0"; 
    } else { 
    intent.putExtra(EXTRA_MESSAGE, finalResultString); 
    startActivity(intent); 
}} 
관련 문제