2017-12-16 11 views
-1

アプリケーションがクラッシュしないようにするために、送信ボタンを押す前にフィールドが空でないことを確認します。edittextが空でないことを確認してください

これは私のコード

package com.alrabei.edcalactivity; 
 

 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.text.TextUtils; 
 
import android.view.View; 
 
import android.widget.Button; 
 
import android.widget.EditText; 
 
import android.widget.TextView; 
 
import android.widget.Toast; 
 

 
public class edcalactivity extends AppCompatActivity { 
 

 
    EditText firstNumber; 
 
    EditText secondNumber; 
 
    EditText thirdnum; 
 
    EditText forthnum; 
 
    TextView showresult; 
 
    Button buadd1; 
 

 

 
    double num1,num2,num3,num4,sum1,sum2,sum3,TotalBuy; 
 

 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.edcal_activity); 
 

 
     firstNumber = (EditText)findViewById(R.id.s1); 
 
     secondNumber = (EditText)findViewById(R.id.p1); 
 
     thirdnum = (EditText)findViewById(R.id.s2); 
 
     forthnum = (EditText)findViewById(R.id.p2); 
 
     showresult = (TextView)findViewById(R.id.result); 
 
     buadd1 = (Button)findViewById(R.id.bu1); 
 

 

 

 
     buadd1.setOnClickListener(new View.OnClickListener() { 
 

 

 

 
      public void onClick(View v) { 
 

 

 
       num1 = Double.parseDouble(firstNumber.getText().toString()); 
 
       num2 = Double.parseDouble(secondNumber.getText().toString()); 
 
       num3 = Double.parseDouble(thirdnum.getText().toString()); 
 
       num4 = Double.parseDouble(forthnum.getText().toString()); 
 

 

 

 

 

 
       if((firstNumber.getText().length()>0) && (secondNumber.getText().length()>0) && (thirdnum.getText().length()>0) && (forthnum.getText().length()>0)) 
 
       { 
 
        sum1 = num1 + num3; 
 
        TotalBuy = (num1 * num2) + (num3 * num4); 
 
        // sum2 = num2 + num4; 
 
        // sum3 = sum2/sum1; 
 
        sum3 = TotalBuy/sum1; 
 

 
        showresult.setText(Double.toString(sum3)); 
 
       } 
 
       else{ 
 
        showresult.setText("Error"); 
 
       } 
 

 

 

 
      } 
 

 
     }); 
 

 

 

 
    } 
 

 

 

 
}

であり、これは私が確認するためにif文をしたxmlファイル

<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
 
    xmlns:tools="http://schemas.android.com/tools" 
 
    android:layout_width="match_parent" 
 
    android:layout_height="match_parent" 
 
    android:gravity="center" 
 
    android:orientation="vertical" 
 
    tools:context="com.alrabei.edcalactivity"> 
 

 

 
    <LinearLayout 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:gravity="center" 
 
     android:orientation="vertical"> 
 

 
     <TextView 
 
      android:id="@+id/textView5" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="match_parent" 
 
      android:text="العدد السابق" /> 
 

 
     <EditText 
 
      android:id="@+id/s1" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="match_parent" 
 
      android:ems="10" 
 
      android:inputType="number" /> 
 

 
     <TextView 
 
      android:id="@+id/textView9" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="wrap_content" 
 
      android:text="السعر:" /> 
 

 
     <EditText 
 
      android:id="@+id/p1" 
 
      android:layout_width="171dp" 
 
      android:layout_height="wrap_content" 
 
      android:ems="10" 
 
      android:inputType="number|numberDecimal" /> 
 

 
    </LinearLayout> 
 

 
    <LinearLayout 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:gravity="center" 
 
     android:orientation="vertical"> 
 

 
     <TextView 
 
      android:id="@+id/textView8" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="wrap_content" 
 
      android:text="الجديد" /> 
 

 
     <EditText 
 
      android:id="@+id/s2" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="wrap_content" 
 
      android:ems="10" 
 
      android:inputType="number" /> 
 

 
     <TextView 
 
      android:id="@+id/textView10" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="wrap_content" 
 
      android:text="القيمة:" /> 
 

 
     <EditText 
 
      android:id="@+id/p2" 
 
      android:layout_width="173dp" 
 
      android:layout_height="wrap_content" 
 
      android:ems="10" 
 
      android:inputType="number|numberDecimal" /> 
 

 
    </LinearLayout> 
 

 
    <Button 
 
     android:id="@+id/bu1" 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:text="Button" /> 
 

 
    <TextView 
 
     android:id="@+id/result" 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:text="TextView" 
 
     android:maxLength="5" 
 
     /> 
 

 
</LinearLayout>

ですユーザーが編集テキストに数字を入力しても動作しないことを確認してください。

+0

質問は蜂は、前 を求めている[ここに答えがある](http://stackoverflow.com/questions/38408960/how-to -check-if-an-edittext-box-is-empty-or-not-in-android-using-java) – Ashish

答えて

0

EditViewが空であるかどうかをまずチェック:

if(!firstNumber.getText().toString().trim().equals("")){ 
//To Do 
    num1 = Double.parseDouble(firstNumber.getText().toString()); 
} 
0

数字の解析後にチェックを行います。そうすれば、Double.parseDouble()は、空であることを確認する前に空の文字列にアクセスしようとします。

onClick()関数の内容全体をif文で囲む必要があります。