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