2017-02-02 49 views

回答

0

您可以使用下面的代碼的EditText動態添加到任何佈局就像我已經採取LinearLayoutandroid:orientation="vertical"

我做了測試活動,說明你怎樣才能添加視圖動態此外,我們正在刺客ID來EditText,如果你想訪問他們的未來,爲此,你必須代碼REVERS,你應該從LinearLayout讓所有孩子的意見,然後把開關盒有那些只是循環位置的ID,它們被添加到LinearLayout中。

下面方法的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); 
     } 
    } 

} 

使用以獲取輸入陣列從動態添加EditText

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」和「Hapus Jenis kursus」是按鈕,那麼「Masukan jenis kursus」是EditText –

+0

我的意思是如何將數據發送到Web服務?我使她成爲一個數據陣列的Web服務。例子發送數據params.put(「jns_krsus」,** ????????? **);示例web服務$ jum_jeniskursus = count($ this-> input-> post('jns_krsus')); for($ a = 0; $ a <$ jum_jeniskursus; $ a ++){$ querydata2 = array('id_ipk'=> $ id,'jenis_kursus'=> $ this-> input-> post('jns_krsus')[$一個] ); $ query2 = $ this-> ijin_m-> simpandatajeniskursus_ipk('m_ipk_jeniskursus',$ querydata2); } –

+0

你需要一個帶輸入值的String []嗎? –

0

您可以動態地添加編輯文本,基地從標籤編輯文本ID。根據你需要多少編輯文本製作,你可以使用循環,的onclick事件等

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

如何設置循環中的EditText? –

+0

循環引用時在字符串標記中追加一個整數,例如,在循環繼續時您有edittext_1 edittext_2等。 – Mike

+0

那麼如何從EditText變量形狀的數組中檢索數據? –