以编程方式分配edittext ids并计算

时间:2013-06-06 17:51:46

标签: android

这里的初学者很抱歉缺乏技巧。 我正在尝试创建一个动态添加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;
}

}

1 个答案:

答案 0 :(得分:1)

创建一个List并将您创建的每个EditText推送到List中。 列表完成后,只需遍历它并进行计算。

以下是示例代码:

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
}

理论上它应该有用,但我没有检查过它。