-1

km/h を mph に変換するアプリがあります。フォームが空白で変換ボタンを押すと、アプリは単に閉じます。フォームが空白の場合に検証する機能が必要であることを理解しており、フォームを空白にすることはできないが、問題のコードが見つからないことをユーザーに通知するメッセージを表示します。

私の onClick コードは次のとおりです。

        buttonConverter.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            double Value1 = Double.valueOf(txtKmhUser.getText().toString());
            double Value2 = Value1 / 1.60;
            Result.setText(String.valueOf(Value2));

        }


    });
4

4 に答える 4

1

EditTextが空の場合、トーストを表示できます。

    @Override
    public void onClick(View arg0) {
        String yourString = txtKmhUser.getText().toString();
        if(!yourString.equals("")){
            double Value1 = Double.valueOf(yourString);
            double Value2 = Value1 / 1.60;
            Result.setText(String.valueOf(Value2));
        }else{
            Toast.makeText(this, "Form can not be blank", Toast.LENGTH_SHORT).show();
        }
    }
于 2015-02-05T19:38:18.187 に答える
0

変換する前に検証を行うだけです

  buttonConverter.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        String str=txtQuilometros.getText().toString();
        if(str.length()>0)
        {
             double Value1 = Double.valueOf(str);
             double Value2 = Value1 / 1.60;
             Result.setText(String.valueOf(Value2));
         }

    }


});
于 2015-02-05T19:37:46.410 に答える
0

変換する前に、編集テキストの値が null であることを確認してください

if(!value1.equals(null))
于 2015-02-05T19:38:03.207 に答える
0

アプリがクラッシュする理由は、Double.valueOf("") が数値形式の例外をスローするためです。そのため、処理の前にフォームを検証するか、例外に対して try/catch を使用する必要があります。

buttonConverter.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        if(txtQuilometros.getText().toString().length() > 0) {
             double Value1 = Double.valueOf(txtQuilometros.getText().toString());
             double Value2 = Value1 / 1.60;
             Result.setText(String.valueOf(Value2));
         } else {
          txtQuilometros.setError("Please enter a value");
    }
});
于 2015-02-05T19:41:45.077 に答える