如何从动态生成的edittexts中获取价值?

时间:2017-05-23 10:10:22

标签: android

我只得到一个值。我可以从动态创建的所有editText中获取数据,这样我就可以在每个editText之后使用逗号传递所有的editText数据。

这是我的代码:

Diagnolist.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            EditText ed;
            Integer count = 1;
            final List<EditText> allEds = new ArrayList<EditText>();

            for (int i = 0; i < count; i++) {

                ed = new EditText(MainActivity.this);
                allEds.add(ed);
                ed.setId(i);
                ed.setHint("add diagonis");
                ed.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                addDiagnosis.addView(ed);
            }
Toast_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
    String[] strings = new String[(allEds.size())];
    String st = "";



    for(int i=0; i < allEds.size(); i++){
        strings[i] = allEds.get(i).getText().toString();
        st = strings[i]+"," +st;
        Toast.makeText(MainActivity.this, st, Toast.LENGTH_SHORT).show();
    }


}
});
    }
});

2 个答案:

答案 0 :(得分:1)

我不确定你的意思,如果我错了,请纠正我。我想你想得到一个以逗号分隔的所有值的String。 我只想将onClick更改为以下内容:

@Override
public void onClick(View view) {
    String st;

    for(EditText ed : allEds){
        st += "," + ed.getText().toString();
    }

    st = st.substring(1); // cut leading comma
    Toast.makeText(MainActivity.this, st, Toast.LENGTH_SHORT).show();

}

答案 1 :(得分:1)

根据以下代码进行更改。

final List<EditText> allEds = new ArrayList<EditText>();

在类定义后声明上面的列表。

Diagnolist.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        EditText ed;
        Integer count = 1;


        for (int i = 0; i < count; i++) {

            ed = new EditText(MainActivity.this);
            allEds.add(ed);
            ed.setId(i);
            ed.setHint("add diagonis");
            ed.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            addDiagnosis.addView(ed);
        }
Toast_button.setOnClickListener(new View.OnClickListener() {
@Override
 public void onClick(View view) {
      String[] strings = new String[(allEds.size())];
      String st = "";
      for(int i=0; i < allEds.size(); i++){
           strings[i] = allEds.get(i).getText().toString();
           st += strings[i]+",";
           Toast.makeText(MainActivity.this, st, Toast.LENGTH_SHORT).show();
      }
  }
 });
}
  });