使用布局检索AlertDialog建设者EditTexts的价值建设者、布局、价值、AlertDialog

2023-09-05 07:20:30 作者:心伤

使用下面的code段,我试图让已经输入到的EditText S中的文本值。

  LayoutInflater厂= LayoutInflater.from(本);
最后查看loginView = factory.inflate(R.layout.login,NULL);

b.setOnClickListener(新OnClickListener(){
    公共无效的onClick(视图v){
        对话D =新AlertDialog.Builder(NewOrder.this)
            .setIcon(R.drawable.icon)
            .setTitle(登录)
            .setView(loginView)
            .setPositiveButton(登录,新DialogInterface.OnClickListener(){
                公共无效的onClick(DialogInterface对话,诠释whichButton){
                    mSpinner = ProgressDialog.show(mContext,,身份验证的用户......);
                    新LoginTask()执行();
                }
            })
            .setNegativeButton(取消,新DialogInterface.OnClickListener(){
                公共无效的onClick(DialogInterface对话,诠释whichButton){
                    / *用户点击取消,以便做一些东西* /
                }
            })
            。创建();
        d.show();
    }
});
 

我的 login.xml 是pretty的标准和直接的:

 < XML版本=1.0编码=UTF-8&GT?;

< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:方向=垂直>

    <的TextView
        机器人:ID =@ + ID / username_view
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_marginLeft =20dip
        机器人:layout_marginRight =20dip
        机器人:文本=邮件地址
        机器人:重力=左
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的EditText
        机器人:ID =@ + ID /用户名
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_width =FILL_PARENT
        机器人:layout_marginLeft =20dip
        机器人:layout_marginRight =20dip
        机器人:scrollHorizo​​ntally =真
        机器人:自动图文集=假
        机器人:利用=无
        机器人:重力=fill_horizo​​ntal
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的TextView
        机器人:ID =@ + ID / password_view
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_marginLeft =20dip
        机器人:layout_marginRight =20dip
        机器人:文本=密码
        机器人:重力=左
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的EditText
        机器人:ID =@ + ID /密码
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_width =FILL_PARENT
        机器人:layout_marginLeft =20dip
        机器人:layout_marginRight =20dip
        机器人:scrollHorizo​​ntally =真
        机器人:自动图文集=假
        机器人:利用=无
        机器人:重力=fill_horizo​​ntal
        机器人:密码=真
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

< / LinearLayout中>
 

当有人点击 PositiveButton ,我怎么了的EditText 字段的值?

解决方案

  .setPositiveButton(登录,新DialogInterface.OnClickListener(){
    公共无效的onClick(DialogInterface对话,诠释whichButton){
        mSpinner = ProgressDialog.show(mContext,,身份验证的用户......);

        / * ==获取的EditText值示例== * /
        EditText上edtext_username =(EditText上)findViewById(R.id.username);
        EditText上edtext_password =(EditText上)findViewById(R.id.password);

        字符串ValueofUsername = edtext_username.getText()的toString()。
        字符串ValueofPassword = edtext_password.getText()的toString()。
        / *结束========== ==========示例* /

        新LoginTask()执行();
    }
})
 
对话框AlertDialog的使用

Using the following code snippets, I'm trying to get the text value which has been typed in to the EditTexts.

LayoutInflater factory = LayoutInflater.from(this);
final View loginView = factory.inflate(R.layout.login, null);

b.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Dialog d = new AlertDialog.Builder(NewOrder.this)
            .setIcon(R.drawable.icon)
            .setTitle("Log In")
            .setView(loginView)
            .setPositiveButton("Log In", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    mSpinner = ProgressDialog.show(mContext, "", "Authenticating User...");
                    new LoginTask().execute();
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    /* User clicked cancel so do some stuff */
                }
            })
            .create();
        d.show();
    }
});

My login.xml is pretty standard and straight forward:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/username_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="Email Address"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/username"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/password_view"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:text="Password"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/password"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:scrollHorizontally="true"
        android:autoText="false"
        android:capitalize="none"
        android:gravity="fill_horizontal"
        android:password="true"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

When someone clicks the PositiveButton, how do I get the value of the EditText fields?

解决方案

.setPositiveButton("Log In", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        mSpinner =  ProgressDialog.show(mContext, "", "Authenticating     User...");

        /* == Get EditText Values Example == */
        EditText edtext_username=  (EditText) findViewById(R.id.username);
        EditText edtext_password=  (EditText) findViewById(R.id.password);

        String ValueofUsername = edtext_username.getText().toString(); 
        String ValueofPassword = edtext_password.getText().toString();
        /* ========== End Example ========== */

        new LoginTask().execute();
    }
})