Android Alert Dialog
A dialog is usually a small window that appears in front of the current Activity. The underlying Activity loses focus and the dialog accepts all user interaction. Dialogs are normally used for notifications that should interrupt the user and to perform short tasks that directly relate to the application in progress (such as a progress bar or a login prompt).
The
Dialog
class is the base class for creating dialogs. However, you typically should not instantiate a Dialog
directly. Instead, you should use one of the following subclasses:AlertDialog
- A dialog that can manage zero, one, two, or three buttons, and/or a list of selectable items that can include checkboxes or radio buttons. The AlertDialog is capable of constructing most dialog user interfaces and is the suggested dialog type.
ProgressDialog
- A dialog that displays a progress wheel or progress bar. Because it's an extension of the AlertDialog, it also supports buttons.
DatePickerDialog
- A dialog that allows the user to select a date.
TimePickerDialog
- A dialog that allows the user to select a time.
http://developer.android.com/reference/android/app/AlertDialog.html
Alert Dialog
-->
Alert Dialog MainActivity.java Source Code
package
com.example.alertdialog;
import
android.os.Bundle;
import
android.app.Activity;
import
android.app.AlertDialog;
import
android.content.Context;
import
android.content.DialogInterface;
import android.view.Menu;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
public class
MainActivity extends Activity {
final Context context = this;
private Button button;
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.buttonAlert);
// add button listener
button.setOnClickListener(new
OnClickListener() {
//@Override
public void
onClick(View arg0) {
AlertDialog.Builder
alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Your
Title Here");
// set dialog message
alertDialogBuilder
.setMessage("Click
Yes to Exit !!!")
.setCancelable(false)
.setPositiveButton("Yes",new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog,int id) {
// if this
button is clicked, close
// current
activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog,int id) {
// if this
button is clicked, just close
// the
dialog box and do nothing
dialog.cancel();
}
});
// Create
Alert Dialog
AlertDialog alertDialog
= alertDialogBuilder.create();
// show it
alertDialog.show();
}
});
}
}
Alert Dialogs ( Many Type of Dialog )
Alert Dialogs Activity.java Source code
package
android.example.alertdialogs;
import
android.annotation.TargetApi;
import
android.app.Activity;
import
android.app.AlertDialog;
import
android.app.Dialog;
import
android.app.ProgressDialog;
import
android.content.DialogInterface;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Message;
import android.view.LayoutInflater;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.Toast;
import
android.database.Cursor;
import
android.provider.ContactsContract;
@TargetApi(11)
public class
AlertDialogsActivity extends Activity {
private static final int DIALOG_YES_NO_MESSAGE = 1;
private static final int DIALOG_YES_NO_LONG_MESSAGE = 2;
private static final int DIALOG_LIST = 3;
private static final int DIALOG_PROGRESS = 4;
private static final int DIALOG_SINGLE_CHOICE = 5;
private static final int DIALOG_MULTIPLE_CHOICE = 6;
private static final int DIALOG_TEXT_ENTRY = 7;
private static final int DIALOG_MULTIPLE_CHOICE_CURSOR = 8;
private static final int DIALOG_YES_NO_ULTRA_LONG_MESSAGE = 9;
private static final int DIALOG_YES_NO_OLD_SCHOOL_MESSAGE = 10;
private static final int DIALOG_YES_NO_HOLO_LIGHT_MESSAGE = 11;
private static final int MAX_PROGRESS = 100;
private
ProgressDialog mProgressDialog;
private int mProgress;
private Handler mProgressHandler;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alert_dialog);
/* Display a text message with
yes/no buttons and handle each message as well as the cancel action */
Button twoButtonsTitle = (Button)
findViewById(R.id.two_buttons);
twoButtonsTitle.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a long text message with
yes/no buttons and handle each message as well as the cancel action */
Button twoButtons2Title = (Button)
findViewById(R.id.two_buttons2);
twoButtons2Title.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display an ultra long text
message with yes/no buttons and handle each message as well as the cancel
action */
Button twoButtons2UltraTitle = (Button)
findViewById(R.id.two_buttons2ultra);
twoButtons2UltraTitle.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a list of items */
Button selectButton = (Button)
findViewById(R.id.select_button);
selectButton.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a custom progress bar */
Button progressButton = (Button)
findViewById(R.id.progress_button);
progressButton.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
mProgress = 0;
mProgressDialog.setProgress(0);
mProgressHandler.sendEmptyMessage(0);
}
});
/* Display a radio button group */
Button radioButton = (Button)
findViewById(R.id.radio_button);
radioButton.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a list of checkboxes
*/
Button checkBox = (Button)
findViewById(R.id.checkbox_button);
checkBox.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a list of checkboxes,
backed by a cursor */
Button checkBox2 = (Button)
findViewById(R.id.checkbox_button2);
checkBox2.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Display a text entry dialog */
Button textEntry = (Button)
findViewById(R.id.text_entry_button);
textEntry.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Two points, in the traditional
theme */
Button twoButtonsOldSchoolTitle =
(Button) findViewById(R.id.two_buttons_old_school);
twoButtonsOldSchoolTitle.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
/* Two points, in the light holographic
theme */
Button twoButtonsHoloLightTitle =
(Button) findViewById(R.id.two_buttons_holo_light);
twoButtonsHoloLightTitle.setOnClickListener(new
OnClickListener() {
public void
onClick(View v) {
}
});
mProgressHandler = new Handler() {
@Override
public void
handleMessage(Message msg) {
super.handleMessage(msg);
if (mProgress >= MAX_PROGRESS) {
mProgressDialog.dismiss();
} else {
mProgress++;
mProgressDialog.incrementProgressBy(1);
mProgressHandler.sendEmptyMessageDelayed(0,
100);
}
}
};
}
@Override
protected Dialog
onCreateDialog(int id) {
switch (id) {
case DIALOG_YES_NO_MESSAGE:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_two_buttons_title)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked OK so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Cancel so do some stuff */
}
})
.create();
case DIALOG_YES_NO_OLD_SCHOOL_MESSAGE:
return new
AlertDialog.Builder(AlertDialogsActivity.this,
AlertDialog.THEME_TRADITIONAL)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_two_buttons_title)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
}
})
.create();
case DIALOG_YES_NO_HOLO_LIGHT_MESSAGE:
return new
AlertDialog.Builder(AlertDialogsActivity.this,
AlertDialog.THEME_HOLO_LIGHT)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_two_buttons_title)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
}
})
.create();
case DIALOG_YES_NO_LONG_MESSAGE:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_two_buttons_msg)
.setMessage(R.string.alert_dialog_two_buttons2_msg)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked OK so do some stuff */
}
})
.setNeutralButton(R.string.alert_dialog_something, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Something so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Cancel so do some stuff */
}
})
.create();
case DIALOG_YES_NO_ULTRA_LONG_MESSAGE:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_two_buttons_msg)
.setMessage(R.string.alert_dialog_two_buttons2ultra_msg)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked OK so do some stuff */
}
})
.setNeutralButton(R.string.alert_dialog_something, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Something so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener()
{
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Cancel so do some stuff */
}
})
.create();
case DIALOG_LIST:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setTitle(R.string.select_dialog)
.setItems(R.array.select_dialog_items, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int which) {
/* User
clicked so do some stuff */
String[] items =
getResources().getStringArray(R.array.select_dialog_items);
new
AlertDialog.Builder(AlertDialogsActivity.this)
.setMessage("You
selected: " + which + " , " +
items[which])
.show();
}
})
.create();
case DIALOG_PROGRESS:
mProgressDialog = new
ProgressDialog(AlertDialogsActivity.this);
mProgressDialog.setIconAttribute(android.R.attr.alertDialogIcon);
mProgressDialog.setTitle(R.string.select_dialog);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setMax(MAX_PROGRESS);
mProgressDialog.setButton(DialogInterface.BUTTON_POSITIVE,
getText(R.string.alert_dialog_hide), new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Yes so do some stuff */
}
});
mProgressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
getText(R.string.alert_dialog_cancel), new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked No so do some stuff */
}
});
return mProgressDialog;
case DIALOG_SINGLE_CHOICE:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_single_choice)
.setSingleChoiceItems(R.array.select_dialog_items2, 0, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked on a radio button do some stuff */
}
})
.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener()
{
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Yes so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked No so do some stuff */
}
})
.create();
case DIALOG_MULTIPLE_CHOICE:
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIcon(R.drawable.ic_popup_reminder)
.setTitle(R.string.alert_dialog_multi_choice)
.setMultiChoiceItems(R.array.select_dialog_items3,
new boolean[]{false, true, false, true, false, false, false},
new
DialogInterface.OnMultiChoiceClickListener() {
public void
onClick(DialogInterface dialog, int whichButton,
boolean isChecked)
{
/* User
clicked on a check box do some stuff */
}
})
.setPositiveButton(R.string.alert_dialog_ok,
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked Yes so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel,
new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked No so do some stuff */
}
})
.create();
case DIALOG_MULTIPLE_CHOICE_CURSOR:
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.SEND_TO_VOICEMAIL
};
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
projection, null, null, null);
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIcon(R.drawable.ic_popup_reminder)
.setTitle(R.string.alert_dialog_multi_choice_cursor)
.setMultiChoiceItems(cursor,
ContactsContract.Contacts.SEND_TO_VOICEMAIL,
ContactsContract.Contacts.DISPLAY_NAME,
new
DialogInterface.OnMultiChoiceClickListener() {
public void
onClick(DialogInterface dialog, int whichButton,
boolean isChecked)
{
Toast.makeText(AlertDialogsActivity.this,
"Readonly
Demo Only - Data will not be updated",
Toast.LENGTH_SHORT).show();
}
})
.create();
case DIALOG_TEXT_ENTRY:
// This example shows how to add a
custom layout to an AlertDialog
LayoutInflater factory =
LayoutInflater.from(this);
final View
textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
return new
AlertDialog.Builder(AlertDialogsActivity.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_text_entry)
.setView(textEntryView)
.setPositiveButton(R.string.alert_dialog_ok, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked OK so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new
DialogInterface.OnClickListener() {
public void
onClick(DialogInterface dialog, int whichButton) {
/* User
clicked cancel so do some stuff */
}
})
.create();
}
return null;
}
Download Alert Dialog Sample code
Download Alert Dialogs ( Many Type of Dialog ) -->
สอนเขียน Android สอนเขียนโปรแกรม Android แบบ Online
รับสอนเขียนโปรแกรม Android App สอนแบบ online สอนสด ตัวต่อตัว หรือ เป็นกลุ่ม ได้ทั่วประเทศ กำหนดเวลาเรียนได้
การเรียน Android App แบบ online สามารถกำหนดเวลาเรียน เองได้ ตามแต่ตกลงกัน
( รับสอน นอกสถานที่ แบบเป็น กลุ่ม ทั่วประเทศ )
แต่ละ Course ขึ้นอยู่กับพื้นฐานที่มี นะครับ
Course
1.JAVA Programming สำหรับผู้ที่ยังไม่มีพื้นฐานทางด้าน การเขียนโปรแกรม JAVA
เรียน 3-4 ครั้ง ครั้งละ 2 ชั่วโมง
2.Beginning Android Development เริ่มต้นการพัฒนาด้วย Android ( ต้องมีพื้นฐาน JAVA แล้ว )
เรียน 5-6 ครั้ง ครั้งละ 2 ชั่วโมง
เรียนจบคอร์สนี้ ก็สามารถทำ Application ได้แล้ว
3.Android Application สอนตามความต้องการในการเขียนโปรแกรม ใช้งานจริง เช่น โปรแกรมใช้งานด้านต่างๆ
ระยะเวลา และ ค่าเรียน ตามแต่ความยากง่ายของโปรแกรม ซึ่งอาจจะรวมสอน JAVA Programming ด้วยสำหรับผู้เริ่มต้นเลย
ดังนั้น ราคาสอน จะขึ้นอยู่กับ สเปคงาน
โปรแกรมที่ใช้ทำการเรียน Team Viewer Version ล่าสุด Version 8
Meeting ID จะแจ้งให้ก่อนเรียน ผ่านทาง email sms Line หรือ อื่นๆ ตามสะดวก
ใช้ Tab Meeting ใส่ Meeting ID และใส่ชื่อ
แล้ว Join Meeting
ติดต่อ amphancm@gmail.com
ติดต่อ amphancm@gmail.com