2017-02-02 12 views

答えて

0

私はandroid:orientation="vertical"LinearLayoutをとっているように任意のレイアウトにのEditTextを動的に追加するためのコードの下に使用することができます。

ダイナミックビューを追加する方法を説明するためにテストアクティビティを作成しました。また、暗黙のうちにEditTextにアクセスしたい場合は、逆順にコードする必要があります。子ビューをLinearLayoutから取得し、 LinearLayoutに追加されたループ位置だけのIDを持つスイッチケース。ダイナミックから入力配列を得るための方法以下

の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')); => $ this-> input-> post( 'jns_krsus')[$ jeris_kursus] => $ this-> input-> post( 'jns_kr' => $ a) a]); $ query2 = $ this-> ijin_m-> simpandatajeniskursus_ipk( 'm_ipk_jeniskursus'、$ querydata2); } –

+0

入力値で文字列[]が必要ですか? –

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

設定方法ループ内のテキストを編集しますか? –

+0

参照用にループするときに文字列タグに整数を追加します。たとえば、ループの進行中にedittext_1 edittext_2などがあるとします。 – Mike

+0

どのようにEditText可変形状の配列からデータを取得するのですか? –

関連する問題