简体   繁体   English

从EditText字段获取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM