安卓开发04:对话框例子
来源:互联网 发布:什么软件手游代练 编辑:程序博客网 时间:2024/06/11 16:59
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();
- 安卓开发04:对话框例子
- 安卓开发04:对话框例子
- 安卓开发之对话框
- 【安卓开发学习】7.对话框样式
- 安卓开发之自定义对话框
- 安卓开发-对话框的简单使用
- 安卓开发 弹出对话框,然后自动消失
- 安卓弹出对话框
- 安卓 对话框大全
- 安卓-用户界面-对话框
- 安卓蓝牙开发中google例子BluetoothChat的问题
- 安卓socket例子
- 安卓对话框之-----进度对话框(ProgressDialog)
- 安卓对话框之-----进度对话框(ProgressDialog)
- 安卓对话框之_3
- 安卓弹出对话框问题
- 安卓常用弹出对话框
- 安卓自定义对话框框架
- Qt pro文件Config参数
- 17 - Activity四种加载模式之SingleInstance
- 关于oracle controlfile 恢复的实验,以及思考
- pci driver
- vim 删除一列或多列
- 安卓开发04:对话框例子
- 关于Qt日期
- 使用Excel制作图表的实例教程 Excel图表制作大全
- .net学习笔记(1)
- 让Myeclipse自动生成的get set方法 自动加上文本注释,并且注释内容包含字段中我们加的文档注释
- Qt QDialog 设置最大最小化按钮
- 项目经理岗位职责
- ASP.NET学习(一)
- 使用Pro C++实现数据库连接池采用多线程方式访问oracle数据库