[英]Getting data from EditText fields
I have created a custom AlertDialog
with multiple EditText
fields using a custom layout. 我使用自定义布局创建了一个带有多个
EditText
字段的自定义AlertDialog
。 Now the problem is don't know how to get data from these EditText
when user clicks. 现在问题是当用户点击时不知道如何从这些
EditText
获取数据。 Here's the AlertDialog
. 这是
AlertDialog
。
case R.id.menu_newitem:
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.newvslayout, null);
new AlertDialog.Builder(this).setTitle("New VS")
.setView(textEntryView).setPositiveButton("Ok", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked OK so do some stuff */
}
}).setNeutralButton("Cancel", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
}).show();
And this is my layout newvslayout.xml 这是我的布局newvslayout.xml
....
....
<EditText android:id="@+id/vsname" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Name"
android:inputType="text" />
<EditText android:id="@+id/csize" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="100"
android:inputType="number" />
<EditText android:id="@+id/dsize" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="600" android:inputType="number" />
<EditText android:id="@+id/ssize" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="200" android:inputType="number" />
....
....
edittext t1 = (edittext) textEntryView.findviewbyid(R.id.vsname);
String s = t1.gettext().toString();
Let me expand on user1027958's answer: 让我扩展user1027958的答案:
First, we need to get hold of the EditText components: 首先,我们需要掌握EditText组件:
EditText et_vsName = (EditText) textEntryView.findviewbyid(R.id.vsname);
EditText et_cSize = (EditText) textEntryView.findviewbyid(R.id.csize);
EditText et_dSize = (EditText) textEntryView.findviewbyid(R.id.dsize);
EditText et_sSize = (EditText) textEntryView.findviewbyid(R.id.ssize);
Then we can get the text inside each of the EditText boxes into a String variable, for example: 然后我们可以将每个EditText框中的文本转换为String变量,例如:
String vsName = et_vsName.getText().toString();
The finished code would probably look like this: 完成的代码可能如下所示:
case R.id.menu_newitem:
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.newvslayout, null);
final EditText et_vsName = (EditText) textEntryView.findviewbyid(R.id.vsname);
final EditText et_cSize = (EditText) textEntryView.findviewbyid(R.id.csize);
final EditText et_dSize = (EditText) textEntryView.findviewbyid(R.id.dsize);
final EditText et_sSize = (EditText) textEntryView.findviewbyid(R.id.ssize);
new AlertDialog.Builder(this).setTitle("New VS")
.setView(textEntryView).setPositiveButton("Ok", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
//Get the value of the EditText(s)
String vsName = et_vsName.getText().toString();
}
}).setNeutralButton("Cancel", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
//Close the dialog
this.dismiss();
}
}).show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.