Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieving value of EditTexts in AlertDialog builder using Layout

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?

like image 461
slim Avatar asked Jul 20 '10 23:07

slim


1 Answers

.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();
    }
})
like image 181
Jorgesys Avatar answered Nov 15 '22 08:11

Jorgesys