Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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 - Fatal编程技术网

Java 应用程序崩溃,为什么?

Java 应用程序崩溃,为什么?,java,android,Java,Android,所以,我想让这个应用程序将我动态创建的编辑文本放入一个列表中,然后从该列表中读取,但我有点卡住了,我的应用程序崩溃了。你能告诉我我做错了什么吗?我测试了不同的东西,试图更改一些东西,但我没有发现问题。 我试着看看它是否能显示cant[1],但即使在尝试时它也会崩溃。 这是我的密码: List<EditText> allpret = new ArrayList<EditText>(); List<EditText> allcant = new Array

所以,我想让这个应用程序将我动态创建的编辑文本放入一个列表中,然后从该列表中读取,但我有点卡住了,我的应用程序崩溃了。你能告诉我我做错了什么吗?我测试了不同的东西,试图更改一些东西,但我没有发现问题。 我试着看看它是否能显示cant[1],但即使在尝试时它也会崩溃。 这是我的密码:

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

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);

}



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; j < allpret.size(); k++) {
            pret[k] = allpret.get(k).getText().toString();
        }



        TextView totalf = (TextView) findViewById(R.id.total);
        totalf.setText("Total: " +cant[0]);

    }

}

当您将
j
allpret.size()
而不是
k
进行比较时,您的内部
for
循环(尝试使用
k
作为索引)将永远尝试循环。尝试:

    for (int k = 0; k < allpret.size(); k++) {
        pret[k] = allpret.get(k).getText().toString();
    }
for(int k=0;k
当您将
j
allpret.size()
而不是
k
进行比较时,尝试使用
k
作为索引的
内部
for
循环将永远尝试循环。尝试:

    for (int k = 0; k < allpret.size(); k++) {
        pret[k] = allpret.get(k).getText().toString();
    }
for(int k=0;k
该死!是的,就是这样。我非常讨厌它,当我犯那些愚蠢的基本错误时,它真的会适得其反。谢谢!!在循环中,这个调用似乎也没用。TextView totalf=(TextView)findViewById(R.id.total);totalf.setText(“总计:+cant[0]);为什么要在循环中查找相同的textview并分配。不要在循环之外,因为它每次只能获取相同的视图。该死!是的,就是这样。我非常讨厌它,当我犯那些愚蠢的基本错误时,它真的会适得其反。谢谢!!在循环中,这个调用似乎也没用。TextView totalf=(TextView)findViewById(R.id.total);totalf.setText(“总计:+cant[0]);为什么要在循环中查找相同的textview并分配。在循环之外执行此操作,因为它每次只获取相同的视图。