2009年7月12日日曜日

Android - Dialog を使う -

Dialog





AlertDialog






DatePickerDialog






TimePickerDialog






ProgressDialog

progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);



progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);





More...



res/layout/dialog_layout.xml
  1. <!--xml version="1.0" encoding="utf-8"?-->  
  2. <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" <brbr="">    android:orientation="vertical"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     >  
  6. <textview  
  7.     android:layout_width="wrap_content"  
  8.     android:layout_height="wrap_content"  
  9.     android:text="@string/dialog_question"  
  10.     />  
  11. <linearlayout  
  12.     android:layout_width="fill_parent"   
  13.     android:layout_height="wrap_content"   
  14.     android:orientation="horizontal"  
  15.     android:layout_gravity="center"  
  16.     android:padding="30dip"  
  17.     >  
  18. <button  
  19.     android:id="@+id/dialog_coffee"  
  20.     android:layout_width="wrap_content"  
  21.     android:layout_height="wrap_content"  
  22.     android:text="@string/dialog_coffee_label"  
  23.     android:layout_weight="1"  
  24.     />  
  25. <button  
  26.     android:id="@+id/dialog_tea"  
  27.     android:layout_width="wrap_content"  
  28.     android:layout_height="wrap_content"  
  29.     android:text="@string/dialog_tea_label"  
  30.     android:layout_weight="1"  
  31.     />  
  32. </button  
  33. </button  
  34. </linearlayout  
  35. </textview  
  36. </linearlayout>  




  1. import android.app.Activity;  
  2. import android.app.AlertDialog;  
  3. import android.app.DatePickerDialog;  
  4. import android.app.Dialog;  
  5. import android.app.ProgressDialog;  
  6. import android.app.TimePickerDialog;  
  7. import android.content.DialogInterface;  
  8. import android.os.Bundle;  
  9. import android.view.View;  
  10. import android.widget.DatePicker;  
  11. import android.widget.EditText;  
  12. import android.widget.TimePicker;  
  13.   
  14. public class DialogTest extends Activity {  
  15.   
  16.   EditText editText;  
  17.    
  18.   Dialog dialog;  
  19.   AlertDialog alertDialog;  
  20.   DatePickerDialog datePickerDialog;  
  21.   TimePickerDialog timePickerDialog;  
  22.   ProgressDialog progressDialog;  
  23.    
  24.   @Override  
  25.   public void onCreate(Bundle savedInstanceState) {  
  26.     super.onCreate(savedInstanceState);  
  27.     setContentView(R.layout.main);  
  28.   
  29.     editText = (EditText) findViewById(R.id.text);  
  30.           
  31.     setDialog();  
  32.     setAlertDialog();  
  33.     setDatePickerDialog();  
  34.     setTimePickerDialog();  
  35.     setProgressDialog();  
  36.   }  
  37.   
  38.   // Dialog  
  39.   public void setDialog(){  
  40.     dialog = new Dialog(DialogTest.this);  
  41.     dialog.setContentView(R.layout.dialog_layout);  
  42.     dialog.setTitle("飲み物は?");  
  43.     dialog.findViewById(R.id.dialog_coffee).setOnClickListener(  
  44.  new View.OnClickListener() {  
  45.      public void onClick(View v) {  
  46.             dialog.dismiss();  
  47.           }  
  48.         }  
  49.     );  
  50.     dialog.findViewById(R.id.dialog_tea).setOnClickListener(   
  51.      new View.OnClickListener() {  
  52.      public void onClick(View v) {  
  53.             dialog.dismiss();  
  54.           }  
  55.         }  
  56.     );  
  57.   
  58.     dialogButton = (Button) findViewById(R.id.dialog_test);  
  59.     dialogButton.setOnClickListener(  
  60.       new View.OnClickListener() {  
  61.  public void onClick(View v) {  
  62.    dialog.show();  
  63.  }  
  64.       }  
  65.     );  
  66.   }  
  67.   
  68.   // AlertDialog  
  69.   public void setAlertDialog(){  
  70.     alertDialog = new AlertDialog.Builder(DialogTest.this)  
  71.       .setTitle("給食")  
  72.       .setMessage("カレーライスは好きですか?")  
  73.       .setIcon(R.drawable.icon)  
  74.       .setPositiveButton("はい"new DialogInterface.OnClickListener() {  
  75.  public void onClick(DialogInterface di, int whichButton) {  
  76.         }  
  77.       })  
  78.       .setNegativeButton("いいえ"new DialogInterface.OnClickListener() {  
  79.  public void onClick(DialogInterface di, int whichButton) {    
  80.  }  
  81.       })  
  82.       .setNeutralButton("どちらでもない"new DialogInterface.OnClickListener() {  
  83.  public void onClick(DialogInterface di, int whichButton) {   }  
  84.       })  
  85.       .create();  
  86.    
  87.       findViewById(R.id.alertDialog_test).setOnClickListener(  
  88.         new View.OnClickListener() {  
  89.    public void onClick(View v) {  
  90.             alertDialog.show();  
  91.           }       
  92.       });  
  93.   }  
  94.   
  95.   // DatePickerDialog  
  96.   public void setDatePickerDialog(){  
  97.   
  98.     DatePickerDialog.OnDateSetListener listener =  
  99.       new DatePickerDialog.OnDateSetListener() {  
  100.         public void onDateSet(DatePicker pikcer, int year, int month, int day) {  
  101.           editText.setText(year + "年" + month + "月" + day + "日");    
  102.         }  
  103.       };  
  104.   
  105.     datePickerDialog = new DatePickerDialog(DialogTest.this, listener, 2009712);  
  106.    
  107.     findViewById(R.id.datePickerDialog_test).setOnClickListener(  
  108.       new View.OnClickListener() {  
  109.         public void onClick(View v) {  
  110.    datePickerDialog.show();  
  111.         }  
  112.       });  
  113.   }   
  114.   
  115.   // TimePickerDialog  
  116.   public void setTimePickerDialog() {  
  117.     
  118.     TimePickerDialog.OnTimeSetListener listener =  
  119.       new TimePickerDialog.OnTimeSetListener() {  
  120.         public void onTimeSet(TimePicker picker, int hour, int min) {  
  121.           editText.setText(String.format("%02d時 %02d分", hour, min));  
  122.         }  
  123.       };  
  124.   
  125.     timePickerDialog = new TimePickerDialog(DialogTest.this, listener, 00true);  
  126.     
  127.     findViewById(R.id.timePickerDialog_test).setOnClickListener(  
  128.       new View.OnClickListener() {  
  129.         public void onClick(View v){  
  130.           timePickerDialog.show();  
  131.         }  
  132.       });    
  133.   }  
  134.   
  135.   // ProgressDialog  
  136.   public void setProgressDialog() {  
  137.     
  138.     progressDialog = new ProgressDialog(this);  
  139.     progressDialog.setTitle("調理中");  
  140.     progressDialog.setMessage("カレーライスを作ってます~");  
  141.     progressDialog.setIndeterminate(false);  
  142.     //progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  143.     progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);  
  144.     progressDialog.setMax(10);  
  145.     progressDialog.setCancelable(true);  
  146.     progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {  
  147.       public void onCancel(DialogInterface di) {  
  148.      
  149.       }  
  150.     });  
  151.     
  152.     findViewById(R.id.progressDialog_test).setOnClickListener(  
  153.       new View.OnClickListener() {  
  154.         public void onClick(View view) {  
  155.           progressDialog.show();  
  156.        
  157.           new Thread(new Runnable() {  
  158.             public void run() {  
  159.               try {  
  160.                 for (int i=0; i < progressDialog.getMax(); i++) {   
  161.                   progressDialog.setProgress(i);  
  162.                   Thread.sleep(1000);  
  163.                 }  
  164.               }catch (InterruptedException e){  
  165.               }  
  166.               progressDialog.dismiss();  
  167.             }  
  168.           }).start();  
  169.          }  
  170.       });  
  171.   }  

0 件のコメント:

コメントを投稿