ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。
旋转的进度条表明我们的程序正在加载数据,,那数据总会有加载完的时候。
如何才能消失呢?
android控件的可见属性。所有的android控件都具有这个属性,可以通过android:visibility指定进行,可选值有3种:visible、invisible、和gone。
visible
表示控件是可见的,这个是默认值。
不指定android:visibility时
控件都是可见的。
invisible
表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。
gone
则表示控件不仅不可见,而且不再占用任何屏幕空间。
例:
public class Activity_main extends AppCompatActivity {
private EditText editText;
private ImageView imageView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.button);
editText = (EditText)findViewById(R.id.edit_text);
imageView = (ImageView)findViewById(R.id.image_view);
progressBar = (ProgressBar) findViewById(R.id.progress_bar);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
/* String inputText = editText.getText().toString();
Toast.makeText(Activity_main.this,inputText,Toast.LENGTH_SHORT).show();*/
/*imageView.setImageResource(R.drawable.img_2);*/
if (progressBar.getVisibility()==View.GONE){
progressBar.setVisibility(View.GONE);
}
}
});
}
}
在按钮的点击事件中,我们通过getVisibility()方法来判断ProgressBar是否可见,如果可见就将ProgressBar隐藏掉,如果不可见就将ProgressBar显示出来,重新运行程序。
#AlertDialog
AlertDialog可以再当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他空间的交互能力,因此AlertDialog一般都是用于提示一些非常重要的内容或者警告信息。
比如为了防止用户误删重要内容,再删除前弹出一个确认话框。
首先通过AlertDialog.Builder创建一个AlertDialog的实例,然后可以为这个对话框设置标题、内容、可否取消等属性,接下来调用setPositiveButton()方法为对话框设置确定按钮的点击事件,调用setNegativeButton()方法设置取消按钮的点击事件,最后调用show()方法将对话框显示出来。
AlertDialog.Builder dialog = new AlertDialog.Builder(Activity_main.this);
dialog.setTitle("This is Dialog");
dialog.setMessage("something important.");
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();
ProgressDialog
ProgressDialog和AlertDialog有点类似。都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。
不同的是:
ProgressDialog会在对话框中显示一个进度条,一般用于表示当前操作比较耗时,让用户耐心地等待。
ProgressDialog progressDialog = new ProgressDialog(Activity_main.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();
注意:如果在setCancelable()中传入了false,表示Progre
ssDialog是不能通过Back键取消掉的,这时就要在代码中做好控制,当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在。