国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Dialog對話框實例代碼講解

2019-10-21 21:40:40
字體:
來源:轉載
供稿:網友

Dialog的基本方法

//創建DialogAlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);//設置標題圖標builder.setIcon(R.drawable.ic_launcher);//設置標題builder.setTitle("這是一個對話框");//設置信息builder.setMessage("是否要跳轉?");//確定按鈕setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)//取消按鈕setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)//忽略setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)//顯示對話框show();

系統樣式

1.下拉列表

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);     builder.setIcon(R.drawable.ic_launcher);     builder.setTitle("選擇一個城市");     //下拉列表的數據源     final String[] cities = {"北京", "上海", "廣州", "深圳", "杭州"};     builder.setItems(cities, new DialogInterface.OnClickListener(){       @Override       public void onClick(DialogInterface dialog, int which){         Toast.makeText(MainActivity.this, "你選擇的城市為:" + cities[which], Toast.LENGTH_SHORT).show();       } }); builder.show();

2.單選框列表

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);    builder.setIcon(R.drawable.ic_launcher);    builder.setTitle("請選擇性別");    final String[] sex = {"男", "女"};    //第二個參數指定默認哪個單選框被勾中    builder.setSingleChoiceItems(sex, 1, new DialogInterface.OnClickListener(){      @Override      public void onClick(DialogInterface dialog, int which){          Toast.makeText(MainActivity.this, "性別為:" + sex[which], Toast.LENGTH_SHORT).show();      }    });    builder.setPositiveButton("確定", new DialogInterface.OnClickListener(){      @Override      public void onClick(DialogInterface dialog, int which){                  }    });    builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){      @Override      public void onClick(DialogInterface dialog, int which){                  }    });builder.show();

3.多選框列表

String str;AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);builder.setTitle("選擇你想看的電視劇");final String[] hobbies = {"廷禧攻略", "扶搖", "香蜜沉沉燼如霜", "如懿傳"};//第二個參數代表哪幾個選項被選擇,需要傳遞一個boolean[]數組進去,其長度要和第一個參數的長度相同,如果null表示都不選builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener(){  @Override  public void onClick(DialogInterface dialog, int which, boolean isChecked){    if(isChecked){      str.append(hobbies[which] + ", ");    }    Toast.makeText(MainActivity.this, "選擇的是:" + str.toString(), Toast.LENGTH_SHORT).show();  } });builder.setPositiveButton("確定", new DialogInterface.OnClickListener(){  @Override  public void onClick(DialogInterface dialog, int which){  }});builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){  @Override  public void onClick(DialogInterface dialog, int which){  }});builder.show();

 4.等待對話框

ProgressDialog waitingDialog= new ProgressDialog(MainActivity.this);waitingDialog.setTitle("等待加載中,請稍后...");waitingDialog.setMessage("等待中...");waitingDialog.setIndeterminate(true);//采用不確定式的進度條waitingDialog.setCancelable(false);//點擊外部不取消對話框waitingDialog.show();

5.進度條對話框

int MAXPD = 100;ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);progressDialog.setProgress(0);//設置默認值progressDialog.setTitle("正在下載");progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//進度條樣式progressDialog.setMax(MAXPD);//設置最大值progressDialog.show();

自定義Dialog

1.繼承Dialog

public class CustomDialog extends Dialog {//標題protected TextView hintTv;//左邊按鈕protected Button doubleLeftBtn;//右邊按鈕protected Button doubleRightBtn;//輸入框public EditText editText;public CustomDialog(Context context) {  super(context, R.style.CustomDialogStyle);}@Overrideprotected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  this.setCancelable(false); // 是否可以撤銷  setContentView(R.layout.dialog_custom);  hintTv = findViewById(R.id.tv_common_dialog_hint);  doubleLeftBtn = findViewById(R.id.btn_common_dialog_double_left);  doubleRightBtn = findViewById(R.id.btn_common_dialog_double_right);  editText = findViewById(R.id.et_common_dialog);}//置右鍵文字和點擊事件public void setRightButton(String rightStr, View.OnClickListener clickListener) {  doubleRightBtn.setOnClickListener(clickListener);  doubleRightBtn.setText(rightStr);}//設置左鍵文字和點擊事件public void setLeftButton(String leftStr, View.OnClickListener clickListener) {  doubleLeftBtn.setOnClickListener(clickListener);  doubleLeftBtn.setText(leftStr);}//設置提示內容public void setHintText(String str) {  hintTv.setText(str);  hintTv.setVisibility(View.VISIBLE);}//給兩個按鈕 設置文字public void setBtnText(String leftStr, String rightStr) {  doubleLeftBtn.setText(leftStr);  doubleRightBtn.setText(rightStr);}}

2.自定義Style

<style name="CustomDialogStyle" parent="@android:style/Theme.Dialog">    <!-- 邊框 -->    <item name="android:windowFrame">@null</item>    <!-- 背景透明 -->    <item name="android:windowBackground">@color/transparent</item>    <!-- 無標題 -->    <item name="android:windowNoTitle">true</item>    <!-- 是否浮現在activity之上 -->    <item name="android:windowIsFloating">true</item>    <!-- 半透明 -->    <item name="android:windowIsTranslucent">false</item>    <!-- 背景模糊 -->    <item name="android:windowContentOverlay">@null</item>    <!-- 允許對話框的背景變暗 -->    <item name="android:backgroundDimEnabled">true</item>    <!-- 字體顏色 -->    <item name="android:textColor">@color/white</item>    <item name="android:editTextColor">@color/white</item> </style>

3.自定義布局

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:id="@+id/ll_common_dialog_layout"  android:layout_width="500dp"  android:layout_height="250dp"  android:layout_margin="5dp"  android:background="@drawable/background_info"  android:orientation="vertical"  android:gravity="center">  <!--提示信息-->  <TextView    android:id="@+id/tv_common_dialog_hint"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:gravity="center"    android:textColor="@color/white"    android:textSize="27sp"/>  <EditText    android:id="@+id/et_common_dialog"    android:layout_width="300dp"    android:layout_height="wrap_content"    android:textColor="@color/back"    android:inputType="text|textNoSuggestions"    tools:ignore="LabelFor"    android:hint="請輸入密碼"/>    <!--底部按鈕-->  <LinearLayout    android:id="@+id/ll_common_dialog_double"    android:layout_width="360dp"    android:layout_height="60dp"    android:layout_margin="20dp"    android:orientation="horizontal">    <Button      android:id="@+id/btn_common_dialog_double_left"      android:layout_width="0dp"      android:layout_height="match_parent"      android:layout_weight="1"      android:background="@drawable/btnselector"      android:gravity="center"      android:textColor="@color/white"      android:textSize="27dp"/>    <Button      android:id="@+id/btn_common_dialog_double_right"      android:layout_width="0dp"      android:layout_height="match_parent"      android:layout_weight="1"      android:background="@drawable/btnselector"      android:gravity="center"      android:textColor="@color/white"      android:textSize="27dp"/>  </LinearLayout></LinearLayout>

4.ipad隱藏底部虛擬按鍵

//彈出dialog時隱藏底部虛擬按鍵dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {  @Override  public void onSystemUiVisibilityChange(int visibility) {    int uiOptions =View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;    if (Build.VERSION.SDK_INT >= 19) {      uiOptions |= 0x00001000;    } else {      uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;    }    dialog.getWindow().getDecorView().setSystemUiVisibility(uiOptions);  }});

5.使用自定義Dialog

CustomDialog dialog = new CustomDialog(this);dialog.setHintText("請輸入密碼");dialog.setLeftButton("取消", new View.OnClickListener() {    @Override    public void onClick(View v) {      dialog.dismiss();    }});dialog.setRightButton("確定", new View.OnClickListener() {    @Override    public void onClick(View v) {            }});dialog.show();

總結

以上所述是小編給大家介紹的Android Dialog對話框實例代碼講解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜川县| 镶黄旗| 泰顺县| 灵石县| 佛坪县| 长汀县| 西昌市| 郑州市| 云林县| 大田县| 扶风县| 巴林右旗| 巨野县| 盐源县| 临沧市| 怀柔区| 搜索| 荥经县| 莱州市| 樟树市| 灯塔市| 固原市| 仁寿县| 青田县| 铜梁县| 山东省| 甘洛县| 盱眙县| 洪雅县| 弥勒县| 海阳市| 来凤县| 绥江县| 元阳县| 无棣县| 平塘县| 手机| 建瓯市| 康保县| 桑植县| 灵台县|