亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在一個文本視圖中添加各種編輯文本

如何在一個文本視圖中添加各種編輯文本

慕森卡 2022-09-28 15:34:18
我是編程新手,我需要你的幫助,我在editText txt50中插入數字時遇到錯誤,應用程序崩潰請幫助我,我不知道是什么錯誤:法典:public class Main2Activity extends AppCompatActivity {   private EditText cinco, cien, doscientos, quinientos, mil, dosmil, cincomil, diezmil, veintemil, cincuentamil, cienmil;    private TextView diezmob;    public static final String nombres = "names";    TextView txtBienvenido;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        txtBienvenido = (TextView) findViewById(R.id.txtbienvenido);        String usuario = getIntent().getStringExtra("names");        txtBienvenido.setText("?Bienvenido(a) Hermano(a) " + usuario + "!");        diezmob = (TextView) findViewById(R.id.txtdiezmob);        cinco = (EditText) findViewById(R.id.txt50);        cien = (EditText) findViewById(R.id.txt100);        doscientos = (EditText) findViewById(R.id.txt200);        quinientos = (EditText) findViewById(R.id.txt500);        mil = (EditText) findViewById(R.id.txt1000);        dosmil = (EditText) findViewById(R.id.txt2000);        cincomil = (EditText) findViewById(R.id.txt5000);        diezmil = (EditText) findViewById(R.id.txt10000);        veintemil = (EditText) findViewById(R.id.txt20000);        cincuentamil = (EditText) findViewById(R.id.txt50000);        cienmil = (EditText) findViewById(R.id.txt100000);        cinco.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence s, int start, int count, int after) {            }            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {            }        });    } }日志:在編輯文本 txt50 中插入數字時出錯,應用程序崩潰:java.lang.NumberFormatexception: 無效的雙精度: “”
查看完整描述

2 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

我用這個代碼解決這個錯誤,任何錯誤請說出來。


package com.example.josue.login;


import android.app.DatePickerDialog;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.DatePicker;

import android.widget.EditText;

import android.widget.TextView;


import java.util.Calendar;



public class Main2Activity extends AppCompatActivity implements View.OnClickListener {


    private TextView diezmob;


    public static final String nombres = "names";

    TextView txtBienvenido;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main2);


        txtBienvenido = (TextView) findViewById(R.id.txtbienvenido);

        String usuario = getIntent().getStringExtra("names");

        txtBienvenido.setText("?Bienvenido(a) Hermano(a) " + usuario + "!");


        diezmob = (TextView) findViewById(R.id.txtdiezmob);


        findViewById(R.id.btncalcular).setOnClickListener(this);

        findViewById(R.id.btncalcular5).setOnClickListener(this);

        findViewById(R.id.btncalcular10).setOnClickListener(this);

        findViewById(R.id.btncalcular15).setOnClickListener(this);

    }


    @Override

    public void onClick(View v) {


        switch (v.getId()) {


            case R.id.btncalcular:


                double cinco, cien, doscientos, quinientos, mil, dosmil, cincomil, diezmil, veintemil, cincuentamil, cienmil;


                String Cinco = ((EditText) findViewById(R.id.txt50)).getText().toString();

                String Cien = ((EditText) findViewById(R.id.txt100)).getText().toString();

                String Doscientos = ((EditText) findViewById(R.id.txt200)).getText().toString();

                String Quinientos = ((EditText) findViewById(R.id.txt500)).getText().toString();

                String Mil = ((EditText) findViewById(R.id.txt1000)).getText().toString();

                String Dosmil = ((EditText) findViewById(R.id.txt2000)).getText().toString();

                String Cincomil = ((EditText) findViewById(R.id.txt5000)).getText().toString();

                String Diezmil = ((EditText) findViewById(R.id.txt10000)).getText().toString();

                String Veintemil = ((EditText) findViewById(R.id.txt20000)).getText().toString();

                String Cincuentamil = ((EditText) findViewById(R.id.txt50000)).getText().toString();

                String Cienmil = ((EditText) findViewById(R.id.txt100000)).getText().toString();


                if (Cinco != null && !Cinco.equals("")) {

                    cinco =  Double.valueOf(Cinco);


                }else{

                    cinco = 0;


                }


                if (Cien != null && !Cien.equals("")){

                    cien =   Double.valueOf(Cien);


                }else{

                    cien=0;


                }


                if (Doscientos != null && !Doscientos.equals("")) {

                    doscientos =  Double.valueOf(Doscientos);


                }else{

                    doscientos=0;


                }


                if (Quinientos != null && !Quinientos.equals("")) {

                    quinientos = Double.valueOf(Quinientos);


                }else{

                    quinientos = 0;


                }

                if (Mil != null && !Mil.equals("")){

                    mil = Double.valueOf(Mil);


                }else{

                    mil = 0;


                }

                if (Dosmil != null && !Dosmil.equals("")) {

                    dosmil = Double.valueOf(Dosmil);


                }else {

                    dosmil = 0;


                }

                if (Cincomil != null && !Cincomil.equals("")) {

                    cincomil = Double.parseDouble(Cincomil);


                }else {

                    cincomil = 0;


                }

                if (Diezmil !=null && !Diezmil.equals("")) {

                    diezmil = Double.valueOf(Diezmil);


                }else {

                    diezmil = 0;


                }


                if (Veintemil != null && !Veintemil.equals("")) {

                    veintemil = Double.valueOf(Veintemil);


                }else {

                    veintemil = 0;


                }


                if (Cincuentamil != null && !Cincuentamil.equals("") ) {

                    cincuentamil = Double.valueOf(Cincuentamil);


                }else {

                    cincuentamil = 0;


                }


                if (Cienmil != null && !Cienmil.equals("")    ) {

                    cienmil = Double.valueOf(Cienmil);


                }else {

                    cienmil = 0;


                }




                double suma = (cinco * 50) + (cien * 100) + (doscientos * 200) + (quinientos * 500) + (mil * 1000) +

                            (dosmil * 2000) + (cincomil * 5000) + (diezmil * 10000) + (veintemil * 20000) + (cincuentamil * 50000) +

                            (cienmil * 100000);

                    String resultado = String.valueOf((int)(suma));

                    diezmob.setText(String.valueOf(resultado));


                break;


            case R.id.btncalcular5:


                Intent i = new Intent(this, Main5Activity.class);

                i.putExtra("dato",diezmob.getText().toString());

                startActivity(i);


                break;


            case R.id.btncalcular10:

                Intent ii = new Intent(this, Main5Activity.class);

                startActivity(ii);

                break;


            case

                    R.id.btncalcular15:

                Intent iii = new Intent(this, Main5Activity.class);

                startActivity(iii);

                break;


            default:

                break;

        }

    }

}



查看完整回答
反對 回復 2022-09-28
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

讓我們來評估一下:


if ((cinco.toString().equals("")) && (!cinco.toString().equals(null)) && (cinco.toString().isEmpty() || (cinco.toString().length() >= 0))) {

                        double valor1 = Double.parseDouble((cinco.getText().toString()));

你說如果(“cinco是一個空字符串”)和(不是空)和(是空的(與空字符串相同))或長度>= 0),那么解析雙精度


我很確定唯一一次這個評估為真的是,如果cinco是空的,這將導致一個數字格式異常,因為你試圖解析cinco一個雙倍,而它是空的。您必須使用試捕獲塊處理異常:


try {

    double valor1 = Double.parseDouble((cinco.getText().toString()));

} catch (NumberFormatException e) {

    e.printStackTrace();

}

或者構造如果不允許在 cinco 為空時對其進行求值的語句:


if(cinco.toString() != null && !(cinco.toString().isEmpty() {

    double valor1 = Double.parseDouble((cinco.getText().toString()));

編輯:代碼中的所有雙精度雙倍都會拋出數字格式異常,而不僅僅是順便說一句。那個只是第一個,所以這個答案適用于所有解析。


查看完整回答
反對 回復 2022-09-28
  • 2 回答
  • 0 關注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號