ProgressBar与AlertDialog使用
1.ProgressBar进度条
(1)安卓控件可见属性android:visibility
可选值有三种:
visible:控件可见,是默认值
invisible:不可见,但仍然占有屏幕空间
gone:不可见,也不占有屏幕空间
也可以不在布局文件中设置,而在代码中设置,使用setVisibility()方法,传入View.VISIBLE,View.INVISIBLE,View.GONE三种值
(2)定义方式
<ProgressBar
android:id="@+id/progressbar1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
处理一个点击按钮切换进度条显示与否的逻辑
public class MainActivity extends AppCompatActivity {
private Button button;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar=(ProgressBar)findViewById(R.id.progressbar1);
button=(Button)findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(progressBar.getVisibility()==View.GONE){
progressBar.setVisibility(View.VISIBLE);
}
else{
progressBar.setVisibility(View.GONE);
}
}
});
}
}
这里当我在private Button button位置处定义为private Button button=(Button)findViewById(R.id.button2);时就会产生崩溃,应该是这里成员变量不能直接定义固定值。
刚刚显示的是圆形进度条,此外还能变成条形,更改样式
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
这里就是一个水平进度条,此外还可以设置一个最大值,在代码中进行进度条进度的动态更改
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int progress=progressBar.getProgress();
progress=progress+10;
progressBar.setProgress(progress);
}
});
}
这里就是点击一下进度加10,多点几下就满了
2.AlertDialog
AlertDialog可以在当前页面弹出一个对话框,这个对话框处于所有页面之上,能够屏蔽掉其他控件的交互能力。所以用来提示一些重要内容和警告信息。
它的定义在xml文件中没有,只能在代码中定义
public class MainActivity extends AppCompatActivity {
private Button button;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar=(ProgressBar)findViewById(R.id.progressbar1);
button=(Button)findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is a Dialog");
dialog.setMessage("something");
dialog.setCancelable(false);
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
}
});
}
首先通过AlertDialog.Builder来定义一个AlertDialog,然后设置它的标题消息以及按back键是不是可以取消(setCancelable),setPositiveButton()方法设置确定按钮点击事件,setNegativeButton()方法设置取消按钮点击事件。