这里的初学者很抱歉缺乏技巧。 我正在尝试创建一个动态添加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;
}
}
答案 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
}
理论上它应该有用,但我没有检查过它。