1

私のアプリケーションには、fieldname、fieldtype 列を持つ SQLite データベースがあります。fieldname は EditText 名前付けで構成されます ...例: etsearch、etsave、etcancel など。fieldtype は EditText です。

フィールド名の値を動的に追加します。Java コードを使用してレイアウトを作成しているため、Java クラスでこれらの EditText を宣言する必要があります。

arraylist を作成し、フィールド名の値を追加しました。for ループを使用して EditTexts を宣言する方法がわかりません。

私のコード:

public class MainActivity extends Activity 
{
LinearLayout ll;
LinearLayout llgrower;
Cursor cursor;
ArrayList<String> edittexts;


@Override
protected void onCreate(Bundle savedInstanceState) 
{

    super.onCreate(savedInstanceState);
    ll = new LinearLayout(this);
    llgrower= new LinearLayout(this);

    ll.addView(llgrower);
    this.setContentView(ll);

    cursor = DataBase.getdata("query to get fieldname,fieldtype");

    try 
    {
        if (cursor.moveToFirst())
        {
            do
            {
                edittexts.add(cursor.getString(0));

            } while (cursor.moveToNext());
        }

    } 
    catch (Exception e) {}

    for (int i=0;i<edittexts.size();i++)
    {

    }

}

}

4

2 に答える 2

0
 private void addEditText(int count) {
    int id = 999;

    EditText et;        
    RelativeLayout.LayoutParams params;             

    for(int i=0; i<count; i++) {
        et= new EditText(this);
        et.setId(id);

        params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        params.setMargins(0, 10, 0, 0);
        params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

        if(i > 0) {
            params.addRule(RelativeLayout.BELOW, id - i);
        }
        //ASSIGN VALUE FOR YOUR EDITTEXT FROM db HERE.
        layoutSpinnerContainer.addView(spinner, params);

        id++;
    }
}
于 2013-02-01T06:56:12.433 に答える