Generating Edit Text Programmatically in Android

前端 未结 4 1171
粉色の甜心
粉色の甜心 2020-11-30 10:15

I\'m developing Contact Application, which adds Email address, phone number. I have to create edit text dynamically in code itself. I don\'t know how and where to implement

相关标签:
4条回答
  • 2020-11-30 10:47

    Use below code for Add Edittext Programatically, it will solve your problem.

    RelativeLayout mRlayout = (RelativeLayout) findViewById(R.id.mRlayout);
    RelativeLayout.LayoutParams mRparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    EditText myEditText = new EditText(context);
    myEditText.setLayoutParams(mRparams);
    mRlayout.addView(myEditText);
    
    0 讨论(0)
  • 2020-11-30 10:49

    Layout

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:gravity="center_horizontal" >
    
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Contact Application"
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:gravity="center_horizontal"/>
    

    code

    //container Layout
        TableLayout tbl=(TableLayout)findViewById(R.id.TableLayout1);
        //table row
        TableRow tr = new TableRow(this);
        TableLayout.LayoutParams tableRowParams=
                new TableLayout.LayoutParams
                (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT);
        //for set margin
        tableRowParams.setMargins(0, 10, 0, 0);
        tr.setLayoutParams(tableRowParams);
        //text view
        TextView tv=new TextView(this);
        tv.setText("Email");
        tv.setGravity(Gravity.CENTER);
        tv.setTextColor(Color.parseColor("#0070C0"));
        tv.setTextSize(26);
        tv.setLayoutParams(new TableRow.LayoutParams(100, TableRow.LayoutParams.WRAP_CONTENT));
        //add textview
        tr.addView(tv);
        //set layout params of edittext
        TableRow.LayoutParams etParams=
                new TableRow.LayoutParams
                (120,30);
        etParams.setMargins(10, 0, 0, 0);
    
        EditText et=new EditText(this);
        et.setLayoutParams(etParams);
        //set background
        et.setBackgroundResource(R.drawable.bg_grey);
        et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
        tr.addView(et);
    
        tbl.addView(tr, tableRowParams);
    
    0 讨论(0)
  • 2020-11-30 10:59

    You can create it like so:

    EditText myEditText = new EditText(context); // Pass it an Activity or Context
    myEditText.setLayoutParams(new LayoutParams(..., ...)); // Pass two args; must be LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, or an integer pixel value.
    myLayout.addView(myEditText);
    

    This can be implemented anywhere on the UI thread; a click listener, an onCreate method, and everything in between.

    There is a more generic example in this question, and a good rundown of these processes in this blog.

    0 讨论(0)
  • 2020-11-30 11:00

    EditText within the LinearLayout.

    Try this.

    LinearLayout linearLayout = new LinearLayout(getContext());
                                    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                                    linearLayout.setOrientation(LinearLayout.VERTICAL);
                                    layoutParams.setMargins(2, 1, 2, 1);
                                    linearLayout.setLayoutParams(layoutParams);
    
    EditText editText = new EditText (getContext());
                                        editText .setTextSize(15);
                                        editText .setLayoutParams(layoutParams);
                                        linearLayout.setGravity(Gravity.CENTER);
                                        editText .setText(Html.fromHtml(directiveMessage));
                                        linearLayout.addView(editText );
    
    0 讨论(0)
提交回复
热议问题