編輯:關於Android編程
Dialog是常用的一種Android控件,一般常用的形式有九種。
第一種,最常見的普通dialog
private void nomalDialog() {
//創建對話框對象:AlertDialog的內部類Builder的對象
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//給對話框設置圖標
builder.setIcon(R.drawable.ic_launcher);
//設置Title
builder.setTitle(Title);
//設置對話框的信息內容
builder.setMessage(是否刪除選中的數據);
//設置選擇按鈕
builder.setPositiveButton(刪除, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//進行刪除操作
Toast.makeText(MainActivity.this, 點擊了刪除按鈕, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(取消, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, 點擊了取消----按鈕, Toast.LENGTH_SHORT).show();
}
});
//顯示對話框
builder.show();
}
private void listDialog() {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle(請做出選擇);
builder.setItems(R.array.strs, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
private void singleDialog() {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//strs為在valuse目錄下新建一個arrays.mxl文件
final String[] strs=getResources().getStringArray(R.array.strs);
//給Dialog設置單選選項。參數:1數據源 2默認選中項 3監聽
builder.setSingleChoiceItems(strs, 1, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println(===witch==+which);
// Dialog對象 whitch選中項
Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();
}
});
//選擇結束後不會自動消失對話框,so加上按鈕
builder.setPositiveButton(確定, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println(===witch=btnclick=+which);
}
});
dialogs = builder.show();
}
private void mutiDialog() {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
final boolean[] checkedState=new boolean[3];
builder.setMultiChoiceItems(R.array.strs, checkedState, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
});
builder.setPositiveButton(確定, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String str=;
for(int i=0;i<3;i++){
if(checkedState[i])
str+=true;
else
str+=false;
}
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
private void mdefineDialog() {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
//內容布局轉換成View
View view=View.inflate(MainActivity.this, R.layout.view_dialog, null);
//獲取Dialog內容View中的控件
final EditText etxtv1=(EditText) view.findViewById(R.id.etxtv1);
final EditText etxtv2=(EditText) view.findViewById(R.id.etxtv2);
builder.setView(view);//把View添加進Dialog
//給Dialog添加按鈕
builder.setPositiveButton(登陸, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,etxtv1.getText().toString()+etxtv2.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
private void progressDialog() {
ProgressDialog proDia=new ProgressDialog(MainActivity.this);
proDia.setMessage(正在加載...);
proDia.show();
//消失對話框
// proDia.dismiss();
}
private void progressHDialog() {
final ProgressDialog proD=new ProgressDialog(MainActivity.this);
//設置進度條的樣式
proD.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//設置進度條的最大進度
proD.setMax(100);
new Thread(new Runnable(){
@Override
public void run() {
for(int i=0;i<=100;i++){
try {
Thread.sleep(200);
proD.setProgress(i);
if(i==100){
proD.dismiss();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}}).start();
proD.show();
}
private void DateDialog() {
//日期選擇監聽器
OnDateSetListener DL=new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
//參數選擇結果:年 月 日
Toast.makeText(MainActivity.this,year +:+monthOfYear+:+dayOfMonth, Toast.LENGTH_SHORT).show();
}
};
//日期選擇對話框:參數1上下文 參數2:監聽器 參數...默認顯示日期 實際顯示的月份比這裡設置的月份數會多1個月
DatePickerDialog DD=new DatePickerDialog(MainActivity.this, DL, 2015, 4, 12);
//顯示
DD.show();
}
第九種 時間對話框
private void TimeDialog() {
OnTimeSetListener timeL=new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
//參數:參數2選擇的小時 參數3:分鐘
Toast.makeText(MainActivity.this,hourOfDay +:+minute, Toast.LENGTH_SHORT).show();
}
};
//參數:參數1:上下文對象 參數2:OnTimeSetListener監聽器 參數3:對話框彈出以後默認顯示時間 參數5:是否是24小時
TimePickerDialog time=new TimePickerDialog(MainActivity.this, timeL, 0, 0, false);
time.show();
}
Android仿eleme點餐頁面二級聯動列表
本周末外賣點得多,就仿一仿“餓了麼”好了。先上圖吧,這樣的訂單頁面是不是很眼熟:右邊的listview分好組以後,在左邊的Tab頁建立索引。可以直接導航,是不是很方便。關
android 對話框彈出位置和透明度的設置具體實現方法
例如,屏幕的上方或下方。要實現這種效果。就需要獲得對話框的Window對象,獲得這個Window對象有多種方法。最容易的就是直接通過AlertDialog類的getWin
Android_ListView圖片下載三級緩存處理
這次練習的是圖片的三級緩存處理。主要是避免下載圖片過大過多導致的內存洩露的問題,我們要將下載的圖片進行緩存。緩存主要分三級,是首先存儲再強引用LruCache中,存不下之
Zxing圖片識別 從相冊選取二維碼圖片進行解析總結
在Zxing掃描識別和圖片識別的解析對象是相同的本文分三個步驟:1 獲取相冊的照片2 解析二維碼圖片3 返回結果 1) 獲取相冊照片google對4.4的uri