2012-10-20 10 views
12

Tôi đang phát triển Ứng dụng Liên hệ, thêm địa chỉ Email, số điện thoại. Tôi phải tạo văn bản chỉnh sửa động trong chính mã. Tôi không biết làm thế nào và ở đâu để thực hiện logic này, đề nghị bất kỳ sự giúp đỡ sẽ được biết ơn.Tạo Văn bản Chỉnh sửa Lập trình trong android

Trả lời

20

Bạn có thể tạo ra nó như vậy:

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); 

này có thể được thực hiện bất cứ nơi nào trên thread UI; trình nghe nhấp chuột, phương thức onCreate và mọi thứ ở giữa.

Có một ví dụ chung chung hơn in this question và tóm tắt tốt các quy trình này in this blog.

8

Sử dụng mã bên dưới để Thêm Edittext theo chương trình, nó sẽ giải quyết được sự cố của bạn.

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); 
3

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"/> 

đang

//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);