ProgressBar
作用是在界面上显示一个进度条,表示我们的程序正在加载一些数据
栗子:
<ProgressBar
android:id ="@+id/bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
android:max:设置进度条的最大值
android:visibility:设置控件是否可见,可选值有三种
- visible 表示控件可见,这个是默认值
- invisible 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变透明了
- gone 表示控件不可见,同时不占用屏幕的任何空间了
- 其次,我们还可以通过setVisiibility()方法来设置控件的可见性,传入的值分别为View.VISIBLE View.GONE View.INVISIBLE三个
AlertDialog
作用:可以在当前窗口弹出一个对话框,并且这个对话框置顶于所有元素界面之上,他能够屏蔽掉其他控件的作用
应用场景:比如在删除数据之前,弹出一个确认对话框
栗子:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建AlertDialog实例
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("Warning"); //设置标题
dialog.setMessage("Are you sure delete it ?"); //设置提示内容
dialog.setCancelable(false); //设置可否取消
//设置对话框确定按钮点击事件
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//添加代码逻辑
}
});
//设置对话框取消按钮点击事件
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//添加代码逻辑
}
});
//将按钮显示出来
dialog.show();
}
});
}
}
ProgressDialog
与AlertDialog类似,在界面上弹出一个进度条对话框
栗子:
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final ProgressDialog progress = new ProgressDialog(MainActivity.this);
progress.setTitle("Being loaded");
progress.setMessage("Loading...");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度条样式
progress.setCancelable(true); //设置可否取消,若为false,则不能通过back键取消
progress.setMax(100);
progress.show();
new Thread() {
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
try {
//设置线程睡眠时间
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
//给进度条的位置赋值
progress.setProgress(i);
}
//关闭进度条
progress.dismiss();
}
}.start();
}
});
}
}
dismiss()方法:关闭进度条
setCancelable(true):设置back键是否可以关闭对话框
setProgressStyle()方法:可以设置进度条的样式
有两种值可选:
ProgressDialog.STYLE_HORIZONTAL:水平方向的进度条
ProgressDialog.STYLE_SPINNER:圆形的旋转样式,默认的值