À l'aide des extraits de code suivants, j'essaie d'obtenir la valeur de texte qui a été tapée dans EditText
s.Récupération de la valeur de EditTexts dans le générateur AlertDialog à l'aide de la disposition
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();
}
});
Mon login.xml est assez standard et simple:
<?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>
Quand quelqu'un clique sur le PositiveButton
, comment puis-je obtenir la valeur des champs EditText
?
Je ne pense pas que nous puissions appeler directement 'findViewById' comme ça dans la classe anonyme OnClickListener. Vous devez utiliser la vue de référence 'loginView'. S'il vous plaît voir ma réponse pour plus de détails. –