2017-05-23 106 views
-1

我得到的只是一個值。我可以從我創建的所有editText中動態獲取數據,這樣我就可以在每個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(); 
    } 


} 
}); 
    } 
}); 

回答

0

做改變按下面的代碼。

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(); 
     } 
    } 
}); 
} 
    }); 
+0

edittext1 = aaaa editext2:bbbbb我越來越首先aaaa然後aaaa,bbbbb –

+0

我更新了我的code.please試試上面的代碼st + = strings [i] +「,」; – Vasant

1

我不知道你的意思,所以糾正我,如果我錯了。我想你想得到一個逗號分隔的所有值的字符串。 我只想改變的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(); 

} 
+0

我想發送數據到服務器,如et1,et2,et3 .....等等 –

+0

String st包含所有的值作爲逗號分隔的字符串。你已經設置了Integer count = 1;在你的代碼,所以你只有一個EditText –

+0

謝謝但m沒有得到第一個編輯文本.. –

相關問題