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將會一直存在。