0

初学者在这里非常抱歉缺乏技能。我正在尝试制作一个动态添加edittext并将它们相乘(行)然后将总数添加到总计中的应用程序。我设法让它动态添加edittexits,使其滚动,重置,但我试图弄清楚如何将id分配给每个textedit,然后将值相乘(来自行上的两个编辑文本),然后总结所有结果总计。我想我知道如何为每个edittext设置id(使用setid(i)和for),但我找不到方法我想我找到了方法,但尝试只是有点困难可能会失败,所以我向你们寻求帮助。必须有一种我不知道的更简单的方法,因为我是一个绝对的初学者。如果可用,请给我一些替代方案以及我如何应用它们的示例。提前致谢 !

到目前为止,这是我的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

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

    int i = 4;
    for (i = 4; i < count; i++)
        ;
    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);
    l2.addView(et2);
    et2.setId(i);

    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);
    et3.setId(i + 1);

    count = count++;

    RelativeLayout l4 = (RelativeLayout) findViewById(R.id.layout4);

}

public void reload(View v) {
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

4

1 回答 1

1

创建一个列表并将您创建的每个 EditText 推送到列表中。清单完成后,请仔细检查并进行计算。

这是一个示例代码:

List<EditText> someList = new ArrayList<EditText>();

//Let's say we'd like to add 10 EditTexts
for(int i = 0; i < 10; i++){
    EditText t1 = new EditText(); //The EditText you'd like to add to the list
    t1.setText("lol"); //Give the EditText the value 'lol'
    someList.add(t1); //Add the EditText to the list
}

//Go over the list and get the values
for(EditText t : someList){
    String val = t.getText().toString(); //Get the value for the temp EditText variable t
}

理论上它应该可以工作,但我还没有检查过。

于 2013-06-06T19:02:09.093 回答