2017-02-02 1 views

Antwort

0

Sie unter Code verwenden können EditText dynamisch in jedes Layout hinzuzufügen, wie ich LinearLayout mit android:orientation="vertical" genommen haben.

gemacht I Test Aktivität, die Sie zeigen, wie wir Ansichten sie wollen wir ids EditText sind Attentäter, wenn Sie Zugriff auf dynamisch hinzufügen können sich auch in Zukunft für diese Sie Code haben revers Sie alle untergeordneten Ansichten von LinearLayout erhalten soll, und dann setzen switch case mit da ids, die nur Schleifenpositionen sind, in denen sie in LinearLayout eingefügt werden.

test.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mParentLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@android:color/transparent" 
    android:fitsSystemWindows="true"> 
</LinearLayout> 

TestActivity.java

package com.cj.myapplication; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.EditText; 
import android.widget.LinearLayout; 

/** 
* Created by CHETAN JOSHI on 1/31/2017. 
*/ 

public class TestActivity extends AppCompatActivity{ 
    LinearLayout mParentLayout; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 
     mParentLayout = (LinearLayout)findViewById(R.id.mParentLayout); 
     String [] myList = new String[]{"masukan jenis kursus","Tambah jenis kursus", 
       "masukan jenis kursus","masukan jenis kursus","Tambah jenis kursus"}; 
     addEditTextDynamically(mParentLayout,myList); 
    } 


    private void addEditTextDynamically(LinearLayout mParentLayout,String [] myList){ 

     for (int i=0;i<myList.length;i++){ 
      EditText myEditText = new EditText(mParentLayout.getContext()); //Context 
      myEditText.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
      myEditText.setId(i); 
      myEditText.setTag(myList[i]); 
      mParentLayout.addView(myEditText); 
     } 
    } 

} 

Verwenden unten Methode Eingabearray erhalten von Dynamically EditText hinzugefügt.

private String[] getInputArrayFromEditTexts(LinearLayout mParentLayout){ 
     String[] inputArray = new String [mParentLayout.getChildCount()]; 
     for (int i = 0; i <inputArray.length ; i++) { 
      EditText editText =(EditText) mParentLayout.getChildAt(i); 
      inputArray[i] = editText.getText().toString(); 
     } 
     return inputArray; 
    } 
+0

"Tambah jenis kursus" und "Hapus Jenis kursus" ist Knopf, dann "Masukan jenis kursus" ist EditText –

+0

Ich meine, wie Daten an einen Web-Service zu schicken? Der Web-Service, den ich gemacht habe, hat die Form eines Daten-Arrays. Beispiel senden Sie die Daten params.put ("jns_krsus", ** ????????? **); Beispiel Webservice $ jum_jeniskursus = count ($ this-> input-> post ('jns_krsus')); für ($ a = 0; $ a <$ jum_jeniskursus; $ a ++) {$ querydata2 = array ('id_ipk' => $ id, 'jenis_kursus' => $ this-> input-> post ('jns_krsus') [$ ein]); $ query2 = $ this-> ijin_m-> simpandatajeniskursus_ipk ('m_ipk_jeniskursus', $ querydata2); } –

+0

Benötigen Sie eine Zeichenfolge [] mit Eingabewerten? –

0

Sie bearbeiten Text dynamisch hinzufügen können, und die Basis der Text bearbeiten id aus dem Tag. Je nachdem, wie viele Bearbeiten von Text müssen Sie produzieren, können Sie Loops verwenden, Onclick Ereignisse und usw.

EditText myEditText = new EditText(context); //Context 
myEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
myEditText.setTag("edittext_hello"); 
myLayout.addView(myEditText); 
+0

Wie setId EditText in Schleifen? –

+0

Fügen Sie eine Ganzzahl in das String-Tag ein, wenn Sie als Referenz loopen, so haben Sie beispielsweise edittext_1 edittext_2 usw., während die Schleife weiterläuft. – Mike

+0

dann, wie Daten von EditText Variable Shaped Array abrufen? –