我是android新手。现在我需要知道如何获取当用户按下添加按钮时动态添加的所有edittext的文本值。
add.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
table = (TableLayout) findViewById(R.id.table);
row = new TableRow(Material.this);
table.setGravity(Gravity.CENTER);
edit = new EditText(Material.this);
edit.setWidth(135);
edit.setHeight(35);
edit.setBackgroundColor(Color.WHITE);
row.addView(edit);
table.addView(row);
这里如何获取edittext的文本值?用户可以添加多个edittext。在那种情况下,如何获取所有文本?
答案 0 :(得分:2)
如果动态添加EditText
s,则在数组中保留EditText
的引用,并且当你想要文本时,迭代数组。
答案 1 :(得分:1)
如果您已创建编辑文本,则在编辑文本中设置文本,然后:
String text = edittext.getText().toString();
没关系。
答案 2 :(得分:0)
您需要继续引用动态添加的EditText。
并调用getText()。toString();在那个参考文献上。
另一种方法是使用setId()设置一些id;记录这些ID并在需要时记录。
((EditText)findViewById(edittextidyouset)).getText().toString();
动态查看此线程设置ID:How can I assign an ID to a view programmatically?
答案 3 :(得分:0)
EditTexts
是动态创建的,引用使用引用来获取它的值。
例如
我创建了editText
。
EditText myTextBox = new EditText(getBaseContext());
containerLayout.addView(myTextBox);
此处,myTextBox
是引用editText
的变量,您可以使用getText()
获取该框的值,也可以使用setText()
来设置String value = myTextBox.getText().toString();
myTextBox.setText("this is the setted text");`
该框的值。
editText
修改强>
如果有多个List<EditText> myArray = new ArrayList();
EditText editText1 = new EditText(getBaseContext());
containerLayout.addView(editText1);
myArray.add(editText1);
EditText editText2 = new EditText(getBaseContext());
containerLayout.addView(editText2);
myArray.add(editText2);
EditText editText3 = new EditText(getBaseContext());
containerLayout.addView(editText3);
myArray.add(editText3);
int i = 0;
while (i < myArray.size()) {
Log.i(TAG,myArray.get(i).getText());
i++;
}
,则在数组中添加所有引用并迭代它们。
UdpClient udpServer = new UdpClient(7005);
var receivedResults = await udpServer.ReceiveAsync();
Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there");
try
{
var ipAddress = Convert.ToString(receivedResults.RemoteEndPoint.Address);
var portNo = receivedResults.RemoteEndPoint.Port;
var endpoint = new IPEndPoint(IPAddress.Parse(ipAddress), portNo);
//udpServer.Connect(endpoint);
udpServer.Send(sendBytes, sendBytes.Length, endpoint);
}
答案 4 :(得分:0)
希望这可以帮到你 -
ArrayList<EditText> editTexts = new ArrayList<>();
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.container);
for (int i = 0; i < 20; i++) {
EditText editText = new EditText(this);
editTexts.add(editText);
editText.setText("I am at " + i);
linearLayout.addView(editText);
}
for (EditText editText : editTexts) {
Log.d("Texts", editText.getText().toString());
}
您的xml文件可以像 -
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/container"
android:orientation="vertical"
tools:context="com.hestabit.activity.Home">
</LinearLayout>