編輯:關於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(); }
本周末外賣點得多,就仿一仿“餓了麼”好了。先上圖吧,這樣的訂單頁面是不是很眼熟:右邊的listview分好組以後,在左邊的Tab頁建立索引。可以直接導航,是不是很方便。關
例如,屏幕的上方或下方。要實現這種效果。就需要獲得對話框的Window對象,獲得這個Window對象有多種方法。最容易的就是直接通過AlertDialog類的getWin
這次練習的是圖片的三級緩存處理。主要是避免下載圖片過大過多導致的內存洩露的問題,我們要將下載的圖片進行緩存。緩存主要分三級,是首先存儲再強引用LruCache中,存不下之
在Zxing掃描識別和圖片識別的解析對象是相同的本文分三個步驟:1 獲取相冊的照片2 解析二維碼圖片3 返回結果 1) 獲取相冊照片google對4.4的uri