亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

淺析Android中強大的Dialog

2020-04-11 12:01:55
字體:
來源:轉載
供稿:網友

Android中經常會使用到Dialog(彈出框效果),而且功能非常強大,可以模擬出N種彈出框效果。如圖所示:

下面將通過一個小實例,來像大家展示Android中功能強大的Dialog。代碼都寫了詳細的注釋,讀者不妨試著手動去敲。

當然,由于時間的關系,還有個別功能沒有完成,先有的幾個展示效果中也可能有bug,代碼也有很多需要優化的地方。望大家熱心指出。

下面是代碼(有點長哦):

復制代碼 代碼如下:

package com.chaoyang.activity;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainActivity extends Activity {
    /** Called when the activity is first created. */

 final String[] items={"張三","李四","王五","趙六","阿貓","阿狗"};
    int mSingleChoiceID = -1;
    ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();
    private ProgressDialog mProgressDialog  = null;
    private static final int MAX_PROGRESS = 100;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /*START 設置那些按鈕的點擊監聽對象*/
        ButtonOnclikListen listen =new ButtonOnclikListen();
        Button btnConfim =(Button)this.findViewById(R.id.btnConfim);
        Button btnCheck =(Button)this.findViewById(R.id.btnCheck);
        Button btnCustom =(Button)this.findViewById(R.id.btnCustom);
        Button BtnList =(Button)this.findViewById(R.id.BtnList);
        Button btnMore =(Button)this.findViewById(R.id.btnMore);
        Button BtnProgressbar =(Button)this.findViewById(R.id.BtnProgressbar);
        Button btnRead =(Button)this.findViewById(R.id.btnRead);
        Button btnRidio =(Button)this.findViewById(R.id.btnRidio);

        btnConfim.setOnClickListener(listen);
        btnCheck.setOnClickListener(listen);
        btnConfim.setOnClickListener(listen);
        BtnList.setOnClickListener(listen);
        btnMore.setOnClickListener(listen);
        BtnProgressbar.setOnClickListener(listen);
        btnRead.setOnClickListener(listen);
        btnRidio.setOnClickListener(listen);

        /* END */

    }
    //定義一個公共方法,彈出消息
    private void showDialogMSG(String msg) {
     new AlertDialog.Builder(MainActivity.this)
            .setMessage(msg)
            .show();
       }
    //定義一個內部類,繼承至OnClickListener,專門來處理按鈕點擊事件(面向對象,靈活)
    private final class ButtonOnclikListen implements View.OnClickListener
    {

  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   Button button =(Button) v;//接收被點擊的Button對象
   AlertDialog.Builder builder =new AlertDialog.Builder(MainActivity.this);//定義一個彈出框對象
   builder.setIcon(R.drawable.aa);//設置彈出框的ICON

   switch (v.getId())
   {
   case R.id.btnConfim :
    builder.setTitle("確定提交嗎?");//設置彈出框的標題
    builder.setPositiveButton("確定", new DialogInterface.OnClickListener() { 
     @Override
     public void onClick(DialogInterface dialog, int which) {
      showDialogMSG("您選擇了確定");
     }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      showDialogMSG("您選擇了取消");  
     }
    });

    break;
   case R.id.btnMore:
    builder.setTitle("評價");//標題
    builder.setMessage("說說李孝利在你心里的印象");//彈出框消息
    builder.setPositiveButton("性感",new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
         showDialogMSG("您覺得她很性感"); 
     }
    });
    builder.setNeutralButton("漂亮", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
       showDialogMSG("您覺得她很漂亮"); 
     }
    });
    builder.setNegativeButton("風騷", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
      showDialogMSG("您覺得她很風騷");
     }
    });
    break;
case R.id.BtnList :
    builder.setTitle("列表框");
    builder.setItems(items, new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
     showDialogMSG("您選擇了ID為"+which+"的人,名字叫:"+items[which]); 
     }
    });
    break;
   case R.id.btnRidio:
     mSingleChoiceID = -1;
    builder.setTitle("單選框");
    builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
      mSingleChoiceID=which;
      showDialogMSG("您選擇了ID是"+mSingleChoiceID+",名字為:"+items[which]);
     }
    });
    builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
      if(mSingleChoiceID>-1)
      {
       showDialogMSG("您最終選擇的是"+items[mSingleChoiceID]);
      }else
      {
       showDialogMSG("您最終選擇的是"+items[0]);
      }
     }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub

     }
    });
    break;
case R.id.btnCheck :
 MultiChoiceID.clear(); //先清空集合
    builder.setTitle("多項選擇");
    builder.setMultiChoiceItems(items,new boolean[]{false,false,false,false,false,false}, new DialogInterface.OnMultiChoiceClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which, boolean isChecked) {
      // TODO Auto-generated method stub
      if(isChecked)
      {
       MultiChoiceID.add(which);
       showDialogMSG("您選擇了"+items[which]);
      }else
      {
       MultiChoiceID.remove(which);
      }

     }
    });
    builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub

     String str="";
     for(int i = 0;i<MultiChoiceID.size();i++)
     {
      str+=items[MultiChoiceID.get(i)]+",";
     }
     //去掉最后一個","
     if(str.length()>0){
    str = str.substring(0,str.length()-1);
     }
     showDialogMSG("你一共選擇的有"+str);
     }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

     @Override
     public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub

     }
    });
    break;
   case R.id.BtnProgressbar:
    mProgressDialog =new ProgressDialog(MainActivity.this);
    mProgressDialog.setTitle("進度條窗口");
    mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//設置樣式
    mProgressDialog.setMax(MAX_PROGRESS);//設置最大值
     mProgressDialog.setButton("確定", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {
                      //這里添加點擊后的邏輯
                  }
              });
              mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {
                      //這里添加點擊后的邏輯
                  }
              });
              mProgressDialog.show();
              new Thread().start();
              return;
case R.id.btnCustom:

    break;
case R.id.btnRead:

 break;
   }

   builder.create().show();//創建并顯示彈出框 

   
  }

   
    }

   
}


布局文件部分,比較簡單:
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <Button
    android:id="@+id/btnConfim"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="確定/取消"
    />
     <Button
    android:id="@+id/btnMore"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="多個消息提示"
    />
     <Button
    android:id="@+id/BtnList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="列表框"
    />
     <Button
    android:id="@+id/BtnProgressbar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="進度條框"
    />
     <Button
    android:id="@+id/btnRidio"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="單選框"
    />
     <Button
    android:id="@+id/btnCheck"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="多選框"
    />
     <Button
    android:id="@+id/btnCustom"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="自定義布局"
    />
      <Button
    android:id="@+id/btnRead"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="讀取進度框"
    />
</LinearLayout>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91色在线观看| 久久成人国产精品| 国产精品扒开腿做爽爽爽男男| 国产美女扒开尿口久久久| 亚洲国产精品网站| 久久国产精品久久国产精品| 最近2019中文字幕第三页视频| 国产精品久久久久一区二区| 日本视频久久久| 91亚洲va在线va天堂va国| 美女撒尿一区二区三区| 欧美中文字幕视频在线观看| 92看片淫黄大片欧美看国产片| 黑人巨大精品欧美一区免费视频| 国精产品一区一区三区有限在线| 欧美性感美女h网站在线观看免费| 欧美激情精品久久久久久久变态| 中文字幕一区电影| 亚洲wwwav| 亚洲欧美国产制服动漫| 欧美怡红院视频一区二区三区| 国产精品成人在线| 正在播放国产一区| 精品亚洲国产视频| 国产精品久久久久久久久久| 高清一区二区三区日本久| 欧美巨猛xxxx猛交黑人97人| 色先锋久久影院av| 亚洲精品999| 国产精品久久久久久久久久久不卡| 中文字幕免费精品一区高清| 欧美视频免费在线观看| 亚洲精品99999| 最近2019中文字幕第三页视频| 亚洲人av在线影院| 91丨九色丨国产在线| 97人洗澡人人免费公开视频碰碰碰| 国产一区av在线| 国产精品69久久久久| 亚洲第一免费网站| 国产日韩欧美自拍| 国产成人一区二区| 国产日韩欧美日韩大片| 亚洲国产日韩一区| 色妞色视频一区二区三区四区| 国产精品久久99久久| 国产精品久久久久久久久| 中文字幕av一区| 日韩精品久久久久久久玫瑰园| 亚洲综合av影视| 亚洲精品suv精品一区二区| 精品福利樱桃av导航| 成人免费看吃奶视频网站| 精品久久久久久久久久ntr影视| 欧美另类暴力丝袜| 国产亚洲精品一区二555| 日韩视频免费在线| 亚洲一区二区日本| 亚洲精品美女网站| 日韩成人在线视频| 日韩综合中文字幕| 欧美在线观看网站| 成人a视频在线观看| 97国产精品视频人人做人人爱| 欧美午夜激情视频| 亚洲精品美女久久| 亚洲欧洲日产国码av系列天堂| 日韩专区在线观看| 91在线色戒在线| 精品中文字幕视频| 91精品国产色综合| 欧美视频在线观看 亚洲欧| 日日骚久久av| 久久精品视频一| 成人黄色免费网站在线观看| 欧美高清自拍一区| 啪一啪鲁一鲁2019在线视频| 国产精品 欧美在线| 91在线视频免费| 日韩在线观看免费高清完整版| 国产精品美女久久久久av超清| 亚洲国产精品久久| 欧美成人免费大片| 国产成人激情小视频| 国产精品一区二区三区免费视频| 欧美性猛交xxxx乱大交| 欧美亚洲国产视频小说| 精品久久久久久久久中文字幕| 国产免费一区二区三区在线观看| 精品女同一区二区三区在线播放| 91免费福利视频| 91在线精品播放| 欧美人与性动交a欧美精品| 亚洲乱码国产乱码精品精| 国产aⅴ夜夜欢一区二区三区| 国产精品永久免费观看| 国产v综合ⅴ日韩v欧美大片| 91在线无精精品一区二区| 成人免费看吃奶视频网站| 日韩av电影在线免费播放| 亚洲国产精品va在看黑人| 66m—66摸成人免费视频| 久久福利网址导航| 北条麻妃在线一区二区| 狠狠色狠色综合曰曰| 亚洲精品国产综合区久久久久久久| 姬川优奈aav一区二区| 亚洲理论电影网| 日本成熟性欧美| www日韩中文字幕在线看| 久久噜噜噜精品国产亚洲综合| 欧美精品久久久久久久久| 国产一区二区精品丝袜| 色妞在线综合亚洲欧美| 国产在线拍揄自揄视频不卡99| 国产精品久久久一区| 91tv亚洲精品香蕉国产一区7ujn| 亚洲级视频在线观看免费1级| 亚洲成人亚洲激情| 热久久免费视频精品| 精品久久久久久久久久久久| 国产美女精品视频| 亚洲国内精品在线| 欧美日韩免费在线观看| 久久久久久网址| 国产精品高潮呻吟久久av野狼| 成人午夜在线观看| 中文字幕av一区| 韩日精品中文字幕| 福利二区91精品bt7086| 欧美日韩日本国产| 亚洲无线码在线一区观看| 亚洲一区av在线播放| 国产精品成人v| 午夜精品久久17c| 91福利视频网| 疯狂欧美牲乱大交777| 亚洲视频在线观看视频| 精品动漫一区二区三区| 日本乱人伦a精品| 中文字幕日韩欧美在线| 久久中文字幕在线视频| 欧美日韩在线免费| 91免费福利视频| 国产精品激情av电影在线观看| 中文字幕亚洲欧美日韩在线不卡| 夜夜嗨av一区二区三区免费区| 国产亚洲精品激情久久| 欧美激情亚洲综合一区| 欧美在线xxx| 日韩在线观看免费全集电视剧网站| 久久99精品国产99久久6尤物| 性色av一区二区三区在线观看| 欧美激情影音先锋| 欧美日韩国产丝袜美女| 91久久久久久久久久| 日本最新高清不卡中文字幕| 国产日韩欧美日韩大片| 亚洲va欧美va在线观看| 亚洲天堂精品在线| 九九视频这里只有精品| 国产精品旅馆在线| 97精品视频在线| 欧美精品成人在线|