2016-03-28 10 views
0

何らかの理由で入力検証が機能していません。私が高さ/重さを入力する必要があると言ってエラーが発生したときに私はそれがクラッシュ "アプリ"を計算するたびに。数字を入力すると計算されます。助けてくれてありがとう :)。私はアンドロイドスタジオの新人です。ここ 入力の検証が機能しないandroid studio

は、最初に出てソートあなたのインデントや変数名、私の計算のjavaファイル

public class BmiFrag extends Fragment implements View.OnClickListener { 
Button BmiButton; 
private double weight1=0; 
private double height1=0; 
public static EditText heightIn; 
public static EditText weightIn; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 


    View myView = inflater.inflate(R.layout.fragment_bmi, container, false); 
    BmiButton = (Button) myView.findViewById(R.id.CalculateBmi); 
    BmiButton.setOnClickListener(this); 
    return myView; 
} 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 

     case R.id.CalculateBmi: 







      weightIn = (EditText) 
      getActivity().findViewById(R.id.ETtweight); 
      heightIn = (EditText) getActivity().findViewById(R.id.ETHeight); 
       final TextView tv4 = (TextView) 
     getActivity().findViewById(R.id.TFDisplayBmi); 
      String str1 = weightIn.getText().toString(); 
      String str2 = heightIn.getText().toString(); 

      float weight = Float.parseFloat(str1); 
      float height = Float.parseFloat(str2) ; 

      float bmiValue = calculateBMI(weight, height); 

      String bmiInterpretation = interpretBMI(bmiValue); 

      tv4.setText(String.valueOf(bmiValue + "-" + bmiInterpretation)); 




      if (TextUtils.isEmpty(str1)) { 



       weightIn.setError("Please enter your weight"); 
       weightIn.requestFocus(); 
       return; 
      } 

      else if (TextUtils.isEmpty(str2)) { 
       heightIn.setError("Please enter your height"); 
       heightIn.requestFocus(); 
       return; 
      } 



      break; 






    } 
    } 











    private float calculateBMI(float weight, float height) { 

    float bmi= (float) (weight/ (height*height)*4.88); 

     float total= Math.round(bmi); 



     return total; 
    } 


    private String interpretBMI(float bmiValue) { 

     if (bmiValue < 16) { 
      return "Severely underweight"; 
     } else if (bmiValue < 18.5) { 

     return "Underweight"; 
     } else if (bmiValue < 25) { 

      return "Normal"; 
     } else if (bmiValue < 30) { 

      return "Overweight"; 
     } else { 
      return "Obese"; 


     } 


    } 


    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    @Override 
    public void onDestroy() { 


    } 

    @Override 
    public void onDetach() { 
     super.onDetach(); 
    } 

}次のようなコードを変更する

+0

「ETtweight」が所属するlogcat –

+0

を投稿してください。それは 'fragment_bmi'の中にありますか? –

答えて

0

てみてください、

 if (TextUtils.isEmpty(str1)) { 
      weightIn.setError("Please enter your weight"); 
      weightIn.requestFocus(); 
      return; 
     } 
     else if (TextUtils.isEmpty(str2)) { 
      heightIn.setError("Please enter your height"); 
      heightIn.requestFocus(); 
      return; 
     }else{ 
     float weight = Float.parseFloat(str1); 
     float height = Float.parseFloat(str2) ; 

     float bmiValue = calculateBMI(weight, height); 

     String bmiInterpretation = interpretBMI(bmiValue); 

     tv4.setText(String.valueOf(bmiValue + "-" + bmiInterpretation)); 
     } 
+0

これは私を助けてくれてありがとうございました。今、それは間違った場所でそれを持っていたより意味をなさない。 – user6079154

0
if (TextUtils.isEmpty(str1)) { 



       weightIn.setError("Please enter your weight"); 
       weightIn.requestFocus(); 
       return; 
      } 

      if (TextUtils.isEmpty(str2)) { 
       heightIn.setError("Please enter your height"); 
       heightIn.requestFocus(); 
       return; 
      } 
0

です。変数str1、str2の名前は決して意味のない名前にしないでください。インデントは常に一貫していなければなりません。これにより、将来の読みやすさとスピードを向上させることができます。

あなたが実際にあなたのコードの一部が読み込む

calculateBMI() method

を通じて物事を入力して割り当てた後あなたが入力検証をやっている:、テキストフィールドからテキストを取るBMIを解釈して、テキストフィールドかどうかを確認できますが空です

関連する問題