Note that there are some explanatory texts on larger screens.

plurals
  1. POalertDialog with PositiveButton and NegativeButton from xml
    text
    copied!<p>I have alert dialog and both PositiveButton and NegativeButton sited programmatically , i want to retrieve them from xml layout ,i try to do it but im new to android development ,</p> <p>any help will be appreciated , thanks.</p> <p>MainActivity:</p> <pre><code> public class MainActivity extends Activity { final Context context = this; private Button button; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv=(TextView)findViewById(R.id.introclusion_tv1); tv.setTypeface(FontFactory.getBFantezy(getBaseContext())); TextView tv1=(TextView)findViewById(R.id.introclusion_tv2); tv1.setTypeface(FontFactory.getBFantezy(getBaseContext())); tv1.setText(Html.fromHtml(getString(R.string.introclusion))); button = (Button) findViewById(R.id.button1); // add button listener button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { LayoutInflater li = LayoutInflater.from(arg0.getContext()); final View dialog_layoutView = li.inflate(R.layout.dialog_layout, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(arg0.getContext()); alertDialogBuilder.setView(dialog_layoutView); alertDialogBuilder .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int id) { EditText username = (EditText) dialog_layoutView.findViewById(R.id.txt_name); EditText password = (EditText) dialog_layoutView.findViewById(R.id.password); if(username.getText().toString().length() &gt; 0 &amp;&amp; password.getText().toString().length() &gt; 0 ) { if(username.getText().toString().equals("test") &amp;&amp; password.getText().toString().equals("test")) { Intent intent = new Intent(MainActivity.this,Text.class); startActivity(intent); finish();} else{ // get your custom_toast.xml layout LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast)); // set a dummy image ImageView image = (ImageView) layout.findViewById(R.id.image_toast); image.setImageResource(R.drawable.ic_launcher); // set a message TextView text = (TextView) layout.findViewById(R.id.text_toast); text.setText("Wrong username or password"); // Toast... Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();}}} }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } }); } } </code></pre> <p>dialog_layout.xml:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10sp" &gt; &lt;EditText android:id="@+id/txt_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/dialog_uname" android:singleLine="true" &gt; &lt;requestFocus /&gt; &lt;/EditText&gt; &lt;EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" &gt; &lt;/EditText&gt; &lt;RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" &gt; &lt;Button android:id="@+id/btn_ok" android:layout_width="120dp" android:layout_height="wrap_content" android:text="@string/dialog_submit" /&gt; &lt;Button android:id="@+id/btn_cancel" android:layout_width="120dp" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/btn_ok" android:text="@string/dialog_cancel" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p></p> <p>EDIT :</p> <pre><code> public class MainActivity extends Activity { final Context context = this; private Button button; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv=(TextView)findViewById(R.id.introclusion_tv1); tv.setTypeface(FontFactory.getBFantezy(getBaseContext())); TextView tv1=(TextView)findViewById(R.id.introclusion_tv2); tv1.setTypeface(FontFactory.getBFantezy(getBaseContext())); tv1.setText(Html.fromHtml(getString(R.string.introclusion))); button = (Button) findViewById(R.id.button1); // add button listener button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { LayoutInflater li = LayoutInflater.from(arg0.getContext()); final View dialog_layoutView = li.inflate(R.layout.dialog_layout, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(arg0.getContext()); alertDialogBuilder.setView(dialog_layoutView); alertDialogBuilder .setCancelable(false); ///////// Button okBtn= (Button) dialog_layoutView.findViewById(R.id.btn_ok); okBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { EditText username = (EditText) dialog_layoutView.findViewById(R.id.txt_name); EditText password = (EditText) dialog_layoutView.findViewById(R.id.password); if(username.getText().toString().length() &gt; 0 &amp;&amp; password.getText().toString().length() &gt; 0 ) { if(username.getText().toString().equals("test") &amp;&amp; password.getText().toString().equals("test")) { Intent intent = new Intent(MainActivity.this,Text.class); startActivity(intent); finish();} else{ // get your custom_toast.xml layout LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup) findViewById(R.id.custom_toast)); // set a dummy image ImageView image = (ImageView) layout.findViewById(R.id.image_toast); image.setImageResource(R.drawable.ic_launcher); // set a message TextView text = (TextView) layout.findViewById(R.id.text_toast); text.setText("Wrong username or password"); // Toast... Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();}}}} ); Button cancelBtn = (Button) dialog_layoutView.findViewById(R.id.btn_cancel); cancelBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.cancel(); } }); /////// // create alert dialog AlertDialog alertDialog = alertDialogBuilder.create(); // show it alertDialog.show(); } }); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload