layout中设置两个可点击按钮:
- <?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="fill_parent"
- android:orientation="vertical" >
- <Button
- android:id="@+id/btn_dialog"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/dialog"
- android:onClick="onClickDialog" />
- <Button
- android:id="@+id/btn_dialogs"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/progressDialog"
- android:onClick="onClickProgressDialog" />
- </LinearLayout>
Activity代码:
- package com.example.androidtest;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.app.AlertDialog.Builder;
- import android.app.Dialog;
- import android.app.ProgressDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.View;
- import android.view.Window;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private String tag = "MainActivity";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- setContentView(R.layout.activity_main); //设置一个View模板
- Log.d(tag, "In the onCreate() event");
- }
- @Override
- public void onStart() {
- super.onStart();
- Log.d(tag, "In the onStart() event");
- Toast.makeText(getBaseContext(), "onStart", Toast.LENGTH_SHORT).show();
- }
- public void onRestart() {
- super.onRestart();
- Log.d(tag, "In the onRestart() event");
- }
- public void onResume() {
- super.onResume();
- Log.d(tag, "In the onResume() event");
- }
- public void onPause() {
- super.onPause();
- Log.d(tag, "In the onPause() event");
- }
- public void onStop() {
- super.onStop();
- Log.d(tag, "In the onStop() event");
- }
- public void onDestroy() {
- super.onDestroy();
- Log.d(tag, "In the onDestroy() event");
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- /**
- * 点击打开对话框
- * @param v
- */
- @SuppressWarnings("deprecation")
- public void onClickDialog(View v) {
- Log.d(tag, "onClickDialog");
- showDialog(0);
- }
- /**
- * 点击打开进度条
- * @param v
- */
- public void onClickProgressDialog(View v) {
- Log.d(tag, "onClickProgressDialog");
- final ProgressDialog progressDialog = new ProgressDialog(this);
- progressDialog.setTitle("ProgressDialog"); //设置标题
- progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置样式
- progressDialog.setMessage("please wait...");
- progressDialog.setProgress(0); //设置进度开始点
- progressDialog.setMax(100); //进度最大是100
- progressDialog.show();
- new Thread(new Runnable() {
- public void run() {
- try {
- Thread.sleep(1000);
- progressDialog.setProgress(10); //每隔1秒就可以设置10
- Thread.sleep(1000);
- progressDialog.setProgress(20);
- Thread.sleep(1000);
- progressDialog.setProgress(30);
- Thread.sleep(1000);
- progressDialog.setProgress(40);
- Thread.sleep(1000);
- progressDialog.setProgress(50);
- Thread.sleep(1000);
- progressDialog.setProgress(60);
- Thread.sleep(1000);
- progressDialog.setProgress(70);
- Thread.sleep(1000);
- progressDialog.setProgress(90);
- Thread.sleep(1000);
- progressDialog.setProgress(100);
- Thread.sleep(1000);
- progressDialog.dismiss();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
- @Override
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case 0:
- Builder builder = new AlertDialog.Builder(this); //创建一个对话框
- builder.setTitle("Android 对话框"); //设置标题
- builder.setMessage("message"); //设置message
- builder.setIcon(android.R.drawable.ic_dialog_info); //设置图标
- builder.setView(new EditText(this)); //设置一个填写的框
- builder.setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, null, null); //选择框
- builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- Toast.makeText(getBaseContext(), "YES!", Toast.LENGTH_SHORT).show();
- }
- });
- builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- Toast.makeText(getBaseContext(), "NO!", Toast.LENGTH_SHORT).show();
- }
- });
- return builder.create();
- }
- return null;
- }
- }
普通对话框:
我们可以看到layout布局视图中有两个按钮,第一个按钮点击后打开的是普通对话框,点击事件android:onClick后调用Activity中的onClickDialog方法
- <Button
- android:id="@+id/btn_dialog"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/dialog"
- android:onClick="onClickDialog" />
Activity中,Dialog代码:
- /**
- * 点击打开对话框
- * @param v
- */
- @SuppressWarnings("deprecation")
- public void onClickDialog(View v) {
- Log.d(tag, "onClickDialog");
- showDialog(0);
- }
- /**
- * 需要重写创建Dialog方法
- */
- @Override
- protected Dialog onCreateDialog(int id) {
- switch (id) {
- case 0:
- Builder builder = new AlertDialog.Builder(this); //创建一个对话框
- builder.setTitle("Android 对话框"); //设置标题
- builder.setMessage("message"); //设置message
- builder.setIcon(android.R.drawable.ic_dialog_info); //设置图标
- builder.setView(new EditText(this)); //设置一个填写的框
- builder.setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, null, null); //选择框
- builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- Toast.makeText(getBaseContext(), "YES!", Toast.LENGTH_SHORT).show();
- }
- });
- builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int whichButton) {
- Toast.makeText(getBaseContext(), "NO!", Toast.LENGTH_SHORT).show();
- }
- });
- return builder.create();
- }
- return null;
- }
进度对话框:
layout中第二个按钮就是调用进度对话框,进度对话框可以显示程序运行进度。
- <Button
- android:id="@+id/btn_dialogs"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/progressDialog"
- android:onClick="onClickProgressDialog" />
Activity中,我们需要创建一个进度Dialog:
- /**
- * 点击打开进度条
- * @param v
- */
- public void onClickProgressDialog(View v) {
- Log.d(tag, "onClickProgressDialog");
- final ProgressDialog progressDialog = new ProgressDialog(this);
- progressDialog.setTitle("ProgressDialog"); //设置标题
- progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置样式
- progressDialog.setMessage("please wait...");
- progressDialog.setProgress(0); //设置进度开始点
- progressDialog.setMax(100); //进度最大是100
- progressDialog.show();
- new Thread(new Runnable() {
- public void run() {
- try {
- //每1秒后,进度条显示10%
- Thread.sleep(1000);
- progressDialog.setProgress(10); //每隔1秒就可以设置10
- Thread.sleep(1000);
- progressDialog.setProgress(20);
- Thread.sleep(1000);
- progressDialog.setProgress(30);
- Thread.sleep(1000);
- progressDialog.setProgress(40);
- Thread.sleep(1000);
- progressDialog.setProgress(50);
- Thread.sleep(1000);
- progressDialog.setProgress(60);
- Thread.sleep(1000);
- progressDialog.setProgress(70);
- Thread.sleep(1000);
- progressDialog.setProgress(90);
- Thread.sleep(1000);
- progressDialog.setProgress(100);
- Thread.sleep(1000);
- progressDialog.dismiss();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }).start();
- }
消息模式弹出框:
- Toast.makeText(getBaseContext(), "YES!", Toast.LENGTH_SHORT).show();
也可以自定义:
- Toast toast=Toast.makeText(getApplicationContext(), "显示带图片的toast", 3000);
- toast.setGravity(Gravity.CENTER, 0, 0);
- //创建图片视图对象
- ImageView imageView= new ImageView(getApplicationContext());
- //设置图片
- imageView.setImageResource(R.drawable.ic_launcher);
- //获得toast的布局
- LinearLayout toastView = (LinearLayout) toast.getView();
- //设置此布局为横向的
- toastView.setOrientation(LinearLayout.HORIZONTAL);
- //将ImageView在加入到此布局中的第一个位置
- toastView.addView(imageView, 0);
- toast.show();