void setProgress(int Progress):设置当前进度
int getProgress():得到当前进度
void setMax(int max):设置最大进度
int getMax():设置或的带最大进度
View:
void setVisibility(int visivility):设置视图的可见性
View.VISIBLE:标识可见
View.INVISIBLE:标识不可见,但占屏幕空间
View.GONE:标识不可见,也不占屏幕空间
4-7、SeekBar(可手动滑动的进度条)
show():显示警告框
没有公开的构造方法,只能通过其内部类Builder来创建
AlertDialog.Builder:
create():创建AlertDialog对象
show():创建AlertDialog对象,同时将其显示出来
setTitle(CharSequence title):设置标题
setMessage(CharSequence message):设置内容
setPositiveButton(String text,onclickListenner listener):设置正面按钮
setNegativeButton(String text,OnClickListener listener):设置负面按钮
dismiss():移除dialog
setSingleChoiceItems(....)设置单选项列表
一般dialog:
/** * 显示一般dialog */ public void showAD(View v){ new AlertDialog.Builder(this) .setTitle("删除数据")//设置标题 .setMessage("你确定删除数据吗?") .setPositiveButton("删除",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(UIActivity.this, "删除数据", 0).show(); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(UIActivity.this, "取消删除数据", 0).show(); } }) .show();//方法链调用 }
显示单选列表dialog:
/** * 显示单选列表Dialog * @param v */ public void showLD(View v){ final String[] color={"红","蓝","绿","灰"};//final 的变量在方法执行完后还存在 new AlertDialog.Builder(this) .setTitle("指定背景颜色") .setSingleChoiceItems(color, 2, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //提示颜色 Toast.makeText(UIActivity.this, color[which], 0).show(); //移除dialog dialog.dismiss(); } }).show(); }
自定义dialog:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:src="@drawable/test" /> <EditText android:id="@+id/dg_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <EditText android:id="@+id/dg_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" /> </LinearLayout>
/** * 显示自定义dialog */ public void showCD(View v){ //动态加载布局文件,得到对应的View对象 View view=View.inflate(this, R.layout.custon_dialog,null); /** * 问题1:View的真实类型? * 是布局文件和标签的类型,包含子View对象 * 问题2:如何得到一个独立View的子View? * view.findById(id) * * */ final EditText namEditText=(EditText) view.findViewById(R.id.dg_name); final EditText passEditText=(EditText) view.findViewById(R.id.dg_password); new AlertDialog.Builder(this) .setView(view).setNegativeButton("取消",null) .setPositiveButton("确定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //读取用户名和密码 String name=namEditText.getText().toString(); String password=passEditText.getText().toString(); Toast.makeText(UIActivity.this, name+">>"+password, 0).show(); } }).show(); }
进度条转圈加载数据
/** * progressDialog */ public void showPD(View v){//回调方法,主线程执行 final ProgressDialog progressDialog=ProgressDialog.show(this,"数据加载","数据加载中。。。"); //模拟做一个长时间的操作 //长时间的操作不能再主线程执行,必须起一个新线程 new Thread(){ public void run() { for(int i=0;i<100;i++){ try { Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); } } //移除dialog progressDialog.dismiss(); }}.start(); }
水平进度条
/** * 显示水平进度条 */ public void showPD2(View v){ //1.创建dialog对象 final ProgressDialog progressDialog=new ProgressDialog(this); //2.设置样式 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //3.显示 progressDialog.show(); //4.启动分线程、加载数据、并显示,当加载完成移除dialog new Thread(new Runnable() { @Override public void run() { int count=20; //设置最大进度 progressDialog.setMax(count); for(int i=0;i<count;i++){ try { Thread.sleep(200); } catch (Exception e) { e.printStackTrace(); } //设置dialog的值 progressDialog.setProgress(i); } //移除dialog progressDialog.dismiss();//不能再分线程执行,但内部使用Handler实现主线程移除dialog //不能再分线程直接更新UI //故: runOnUiThread(new Runnable() { public void run() { Toast.makeText(UIActivity.this, "加载完成了!!", 0).show(); } }); } }).start(); }
/** * 显示DateDialog */ public void showDT(View v){ //创建日历对象 Calendar cd=Calendar.getInstance(); //得到当前年月日 final int year=cd.get(Calendar.YEAR); final int month=cd.get(Calendar.MONTH)+1; final int day=cd.get(Calendar.DAY_OF_MONTH); new DatePickerDialog(this, new OnDateSetListener() { //回调 public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Log.e("TAG", year+">"+monthOfYear+"<>"+dayOfMonth); } }, year, month, day).show(); }
/** * 显示timeDialog */ public void showTD(View v){ Calendar calendar=Calendar.getInstance(); int hours=calendar.get(Calendar.HOUR); int minute=calendar.get(Calendar.MINUTE); new TimePickerDialog(this, new OnTimeSetListener() { public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Log.e("TAG", hourOfDay+"<>"+minute); } }, hours, minute, true).show(); }