Android UI 디자인 의 AlertDialog 팝 업 창 컨트롤

안 드 로 이 드 와 관련 된 팝 업 창 인터페이스 는 여러분 이 많이 보 셨 을 것 이 라 고 믿 습 니 다.핸드폰 에 있 는 많은 응용 프로그램 들 이 팝 업 창 컨트롤 과 관련 되 어 있 습 니 다.예 를 들 어 전형 적 인 그림 을 삭제 하거나 마 운 트 해제 할 때마다 하나의 창 이 팝 업 되 어 삭제/마 운 트 해제 여 부 를 묻 는 등 우리 시스템 의 설정 시간/날짜 등 이 모두 이런 컨트롤 을 사 용 했 습 니 다.다음은 코드 를 통 해 자주 사용 하 는 팝 업 창 컨트롤 을 정리 하 겠 습 니 다.
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context="com.company.alertdialog.MainActivity">

 <Button
  android:id="@+id/btn1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="    " />

 <Button
  android:id="@+id/btn2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="    " />

 <Button
  android:id="@+id/btn3"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="    " />

 <Button
  android:id="@+id/btn4"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="    " />

 <Button
  android:id="@+id/btn5"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="    " />

 <Button
  android:id="@+id/btn6"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:onClick="onClick"
  android:text="     " />
</LinearLayout>

strings.xml

<resources>
 <string name="app_name">AlertDialog</string>
 <string-array name="list">
  <item>   </item>
  <item>   </item>
  <item>   </item>
  <item>   </item>
  <item>   </item>
  <item>   </item>
 </string-array>
</resources>

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

 //      
 private Button mBtn1;

 //      
 private Button mBtn2;

 //      
 private Button mBtn3;

 //      
 private Button mBtn4;

 //      
 private Button mBtn5;

 //       
 private Button mBtn6;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  init();
  event();
 }

 /**
  *       
  */
 private void event() {
  mBtn1.setOnClickListener(this);
  mBtn2.setOnClickListener(this);
  mBtn3.setOnClickListener(this);
  mBtn4.setOnClickListener(this);
  mBtn5.setOnClickListener(this);
  mBtn6.setOnClickListener(this);
 }

 /**
  *      
  */
 private void init() {
  mBtn1 = (Button) findViewById(R.id.btn1);
  mBtn2 = (Button) findViewById(R.id.btn2);
  mBtn3 = (Button) findViewById(R.id.btn3);
  mBtn4 = (Button) findViewById(R.id.btn4);
  mBtn5 = (Button) findViewById(R.id.btn5);
  mBtn6 = (Button) findViewById(R.id.btn6);
 }

 @Override
 public void onClick(View v) {
  switch (v.getId()) {
   case R.id.btn1:
    createListDialog();
    break;
   case R.id.btn2:
    createSingleDialog();
    break;
   case R.id.btn3:
    createMutilDialog();
    break;
   case R.id.btn4:
    createDateDialog();
    break;
   case R.id.btn5:
    createTimeDialog();
    break;
   case R.id.btn6:
    createProgressBarDialog();
    break;


  }
 }

 /**
  *          
  */
 private void createProgressBarDialog() {
  //         
  ProgressDialog progressDialog = new ProgressDialog(this);
  //    
  progressDialog.setTitle("     ");
  //      
  progressDialog.setIcon(R.mipmap.ic_launcher);
  //    
  progressDialog.setMessage("    ...");
  //      
  progressDialog.setMax(100);
  //        
  progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  //       
  progressDialog.show();
  //          ,                              ,
  //        ,      。                 
  //          bug,          ,     ,   
  //       
//  progressDialog.setCancelable(false);//          ,                 
  progressDialog.setProgress(50);
 }

 /**
  *         
  */
 private void createDateDialog() {
  new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
   /**
    *
    * @param view         view
    * @param year       
    * @param monthOfYear       , 0   
    * @param dayOfMonth,      , 1   
    */
   @Override
   public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    Toast.makeText(MainActivity.this, "view = " + view + " :" + year + " :" + monthOfYear + " " + dayOfMonth, Toast.LENGTH_SHORT).show();
   }
  }, 2016, 7, 15)//                 0   ,0  1 ,1  2 .....11  12 
  .show();
 }


 /**
  *         
  */
 private void createTimeDialog() {
  new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
   /**
    *
    * @param view        view
    * @param hourOfDay   
    * @param minute   
    */
   @Override
   public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    Toast.makeText(MainActivity.this, "     view = " + view + "hourOfDay = " + hourOfDay + "minute = " + minute, Toast.LENGTH_SHORT).show();
   }
  }, 11, 22, true)
  .show();
 }


 /**
  *         
  */
 private void createMutilDialog() {
  new AlertDialog.Builder(this)
    .setTitle("    ")
    .setIcon(R.mipmap.ic_launcher)
    //      boolean  ,     null           ,           , 
    //           ,       ,         true   ,        
    //       ,     ,            
    .setMultiChoiceItems(R.array.list, new boolean[]{true, false, false, true, false, false, false, false, false, false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() {
     /**
      *
      * @param dialog         
      * @param which        
      * @param isChecked           
      */
     @Override
     public void onClick(DialogInterface dialog, int which, boolean isChecked) {
      Toast.makeText(MainActivity.this, "      " + which + "     " + isChecked, Toast.LENGTH_SHORT).show();
     }
    })
    //      ,        
    .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      dialog.dismiss();
     }
    })
    //    ,            
    .setPositiveButton("sure", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {

     }
    })
    .setCancelable(false)
    .show();
 }



 /**
  *         
  */
 private void createSingleDialog() {
  new AlertDialog.Builder(this)
    .setTitle("    ")
    .setIcon(R.mipmap.ic_launcher)
    //    , 1    ,2         ,3        
    .setSingleChoiceItems(R.array.list, 1, new DialogInterface.OnClickListener() {
     /**
      *
      * @param dialog       
      * @param which              item
      */
     @Override
     public void onClick(DialogInterface dialog, int which) {
      Toast.makeText(MainActivity.this, "     dialog = " + dialog + "which = " + which, Toast.LENGTH_SHORT).show();
     }
    })
    .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {
      dialog.dismiss();
     }
    })
    .setPositiveButton("sure", new DialogInterface.OnClickListener() {
     @Override
     public void onClick(DialogInterface dialog, int which) {

     }
    })
    .setCancelable(false)//          ,                 
    .show();
 }


 /**
  *         
  */
 private void createListDialog() {
  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setTitle("    ");
  builder.setItems(R.array.list, new DialogInterface.OnClickListener() {
   /**
    *
    * @param dialog       
    * @param which              item
    */
   @Override
   public void onClick(DialogInterface dialog, int which) {
    Toast.makeText(MainActivity.this, "   dialog = " + dialog + "which = " + which, Toast.LENGTH_SHORT).show();
   }
  });
  builder.setCancelable(false);//          ,                 
  builder.show();
 }
}
목록 창:

단일 창 선택:

다 중 선택 창:

날짜 창:

시간 창:

진행 막대 팝 업 창:

거의 흔 하지 않 은 몇 가지 가 여기에 있 는데,팝 윈도 우 는 당분간 소개 하지 않 는 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기