常用对话框

来源:互联网 发布:java程序猿年终总结 编辑:程序博客网 时间:2024/05/29 20:05

1.菜单键

这个比较特殊,在menu下定义一个xml,menu节点

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    tools:context="com.example.optionmenudemo.MainActivity" >    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:showAsAction="never"        android:title="设置"/>    <item        android:id="@+id/action_option"        android:orderInCategory="100"        android:showAsAction="never"        android:title="选项"/>    <item        android:id="@+id/action_exit"        android:orderInCategory="100"        android:showAsAction="never"        android:title="退出"/></menu>


 

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.mymenu ,menu);return true;/*//注意第二个参数,必须设置ID,否则itemSelect里的ID统一分配0,无法区分menu.add(0,0,0,"Wallpaper");menu.add(0,1,0,"ManageApp");menu.add(0,2,0,"System Setting");return true;*/}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {        int id = item.getItemId();        if (id==R.id.action_settings) {Toast.makeText(this, "即将去设置", 1).show();}else if (id==R.id.action_option) {Toast.makeText(this, "即将去option选单", 1).show();}else if (id==R.id.action_exit) {Toast.makeText(this, "即将退出", 1).show();}System.out.println("MainActivity.onOptionsItemSelected()"+id);return super.onOptionsItemSelected(item);/*if (id==0) {Toast.makeText(this, "即将去设置墙纸", 1).show();}else if (id==1) {Toast.makeText(this, "即将去ManageApp", 1).show();}else if (id==2) {Toast.makeText(this, "即将去System Setting", 1).show();}*/}}

 

2.普通确定、取消框

用了链式写法,注销掉的也可以,另外builder本身就是dialog的子类

public void showDialog1(View v){/*//属于alertDialog类,参数为contextBuilder builder = new Builder(this);    builder.setTitle("Android学习");    builder.setMessage("是否浏览百度");    //第二个参数是一个listener,暂时先置空    builder.setPositiveButton("确认", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);Uri uri = Uri.parse("http://www.baidu.com/");intent.setData(uri);Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.baidu.com/"));startActivity(intent);}});    builder.setNegativeButton("取消", null);    //show出来用户才能看到    builder.show();*/  /* Builder builder =  new Builder(this) ;   builder.setTitle("Android学习");   builder.setMessage("是否浏览baidu?");   builder.setPositiveButton("确认", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubIntent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);Uri uri =Uri.parse("http://www.baidu.com/");intent.setData(uri);//定义的intent里面么有规定typestartActivity(intent);}    });   builder.setNegativeButton("取消", null);      Dialog dialog = builder.create();   dialog.show();    */new Builder(this)      .setTitle("Android学习")    .setMessage("是否浏览百度?")    .setPositiveButton("确认", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubIntent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);Uri uri =Uri.parse("http://www.baidu.com/");intent.setData(uri);//定义的intent里面么有规定typestartActivity(intent);}    })    .setNegativeButton("取消", null)       .show(); }



3. 列表选择框

public void showDialog2(View v){final String[] items = {"c","java" ,"c++"};new Builder(this).setTitle("请选择学习的内容").setItems(items, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubSystem.out.println("MainActivity.showDialog2(...).new OnClickListener() {...}.onClick()"+which);String choice = items[which];Toast.makeText(MainActivity.this, choice, 1).show();}}).show();}


 

4.列表单选框

public void showDialog3(View v){final String[] items = {"c","java" ,"c++"};new Builder(this).setTitle("请选择学习的内容")//第二个参数表示默认选的哪个,-1表示一个都不选.setSingleChoiceItems(items, -1, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.cancel();Toast.makeText(MainActivity.this, items[which], 1).show();}}).show();}

 

5.列表多选框

public void showDialog4(View v){    final String[] items = {"c","java" ,"c++"};     new Builder(this).setTitle("请选择学习的内容")//第二个参数表示哪些默认被选上 .setMultiChoiceItems(items, new boolean[]{true,false,true}, new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {// TODO Auto-generated method stubif (isChecked) {Toast.makeText(MainActivity.this, items[which], 1).show();}}})//多选需要确定.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//选完主动关闭dialog.cancel();}}).show();}


 

6.等待提示框

public void showDialog5(View v){//第一个参数表示在哪写 final  ProgressDialog dialog =ProgressDialog.show(this, "警告", "我们正在升级系统,并不要乱按按钮。耐心等待");   //起一个线程,一段时间后自动退出 new Thread(new Runnable() {@Overridepublic void run() {//方法1,系统的睡眠/*try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}*///方法2,dialog带的睡眠取消SystemClock.sleep(2000);    dialog.cancel();} }).start();  }


 

7.等待+进度提示

public void showDialog6(View v){//不能和等待提示框那样直接show文字,需要逐项设置 final  ProgressDialog dialog =new ProgressDialog(this); dialog.setTitle("提示"); dialog.setMessage("我们正在下载,请耐心等待"); //告诉系统这是一个进度条 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //进度条长度 dialog.setMax(100); dialog.show(); //之前的进度条不会动,另起线程让他走起来 new Thread(new Runnable() {@Overridepublic void run() {int i = 0;while(true){//ProgressBar 这种控件是可以在子线程里更新UI的dialog.setProgress(i++);SystemClock.sleep(100);                   if (i>100) {break;}}dialog.cancel();} }).start();}


0 0
原创粉丝点击