Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序崩溃、动态编辑文本、列表等_Java_Android_Crash - Fatal编程技术网

Java 应用程序崩溃、动态编辑文本、列表等

Java 应用程序崩溃、动态编辑文本、列表等,java,android,crash,Java,Android,Crash,在过去的2-3个小时里,我一直在做一些改变,试图找出我哪里出了问题。我想我试图修复它使情况变得更糟……你能看一下并告诉我哪里出了问题吗? 我试图做的是:动态创建EditExt(每次按下按钮2个)。值包含两个列表(EditExt的每列一个)。从那里,它们相互相乘,进入第三个列表,然后将所有值相加,并给出总计 我知道它还不完整,但我停止了前进,因为它开始崩溃。。。 代码如下: List<EditText> allpret = new ArrayList<EditText&g

在过去的2-3个小时里,我一直在做一些改变,试图找出我哪里出了问题。我想我试图修复它使情况变得更糟……你能看一下并告诉我哪里出了问题吗? 我试图做的是:动态创建EditExt(每次按下按钮2个)。值包含两个列表(EditExt的每列一个)。从那里,它们相互相乘,进入第三个列表,然后将所有值相加,并给出总计

我知道它还不完整,但我停止了前进,因为它开始崩溃。。。 代码如下:

    List<EditText> allpret = new ArrayList<EditText>();
List<EditText> allcant = new ArrayList<EditText>();
List<Float> alltotal = new ArrayList<Float>();


public void produsnou(View v) {
    LinearLayout l1 = (LinearLayout) findViewById(R.id.layout1);
    EditText et = new EditText(this);
    et.setHint("Produs");
    l1.addView(et);

    LinearLayout l2 = (LinearLayout) findViewById(R.id.layout2);
    EditText et2 = new EditText(this);
    et2.setHint("Cantitate");
    et2.setInputType(InputType.TYPE_CLASS_NUMBER
            | InputType.TYPE_NUMBER_FLAG_DECIMAL);

    allcant.add(et2);
    l2.addView(et2);

    LinearLayout l3 = (LinearLayout) findViewById(R.id.layout3);
    EditText et3 = new EditText(this);
    et3.setHint("Pret");
    et3.setInputType(InputType.TYPE_CLASS_NUMBER
            | InputType.TYPE_NUMBER_FLAG_DECIMAL);
    l3.addView(et3);

    allpret.add(et3);

}

float temp=0;

public void calculeaza(View v) {
    String[] cant = new String[allcant.size()];
    for (int j = 0; j < allcant.size(); j++) {
        cant[j] = allcant.get(j).getText().toString();}

        String[] pret = new String[allcant.size()];


        for (int k = 0; k < allpret.size(); k++) {
            pret[k] = allpret.get(k).getText().toString();}

         Float[] totaluri = new Float[alltotal.size()];

         for(int l=0;l<allpret.size();l++){


            Float temp = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
            alltotal.add(temp);

            totaluri[l] = temp  ;   }



        TextView totalf = (TextView) findViewById(R.id.total);
        totalf.setText("Total: " +totaluri[1]); }

浮点是包含基本浮点的对象。这不是一个数字。它是一个包含数字的对象

这句台词似乎非常松松垮垮:

Float temp = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
你想用这个做什么

也许你想要这样的东西:

float floatValue = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
Float temp = Float(floatValue);

当然,您可以将它们连接成一行。但我认为这样更容易向您展示应该发生的事情。

因此您在开始时定义了
alltotal
ArrayList,但在执行
newfloat[alltotal.size()]
时,它没有元素,因此您最终得到了一个空的
totaluri
数组。当您尝试将
temp
保存到第1个位置(0)时,该操作失败:

for(int k=0;kFloat[]totaluri=新的Float[alltotal.size()]//还有,我怎样才能让我的logcat看起来好看,这样你们就不用每次都编辑我丑陋的logcat了,谢谢!
float floatValue = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
Float temp = Float(floatValue);
 for (int k = 0; k < allpret.size(); k++) {
     pret[k] = allpret.get(k).getText().toString();}
     Float[] totaluri = new Float[alltotal.size()]; //<----- totaluri = []
     for(int l=0;l<allpret.size();l++){
        Float temp = Float.parseFloat(cant[l]) * Float.parseFloat(pret[l]);
        alltotal.add(temp);
        totaluri[l] = temp  ; //<---- totaluri[0] is not a valid index