ym-Androidはゼロから(13)(共通ダイアログ、カスタムダイアログ)(新)


転載はCymのブログから出ていることを明記してください(http://blog.csdn.net/cym492224103)、応援ありがとうございます!前言今日はよく使うポップアップを学びましょう~!ダイアログボックスはグラフィックインタフェースの中で、ダイアログボックスもヒューマンマシンインタラクションの重要な形式であり、プログラムはフレームを通じてユーザーにいくつかの情報のヒントを与えることができ、ユーザーはダイアログボックスとプログラムを通じて簡単なインタラクションを行うことができる.Androidの開発中なので、ダイアログボックスはAndroid.app.Dialogから来ています.ダイアログのサブクラス:ダイアログの一般的な方法:AlertDialog および AlertDialog.Builder Alert 警告の意味を表すので、AlertDialogは警告ボックスの概念を表し、主な機能は警告情報を生成することです.
java.lang.Object
   ↳
android.app.Dialog
   ↳
android.app.AlertDialog
AlertDialogはdiallogの直接サブクラスであるため,Dialogクラスの各操作方法を用いることができる.しかし、このクラスの構築方法はすべてProtectedキーワード定義を使用しているので、このキーワードの定義権限の特徴:本クラス、同じパッケージのクラス、異なるパッケージのサブクラスがアクセスできるので、AlertDialogクラスの構築方法が隠されていることを意味します.したがって、AlertDialogダイアログボックスを作成するには、AlertDialog.Builderクラスを使用して完了する必要があります.このクラスの名前から、ダイアログボックス専用の作成クラスであることがわかります.簡単警告ボックス
public class MyDialogDemo extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                Dialog dialog = new AlertDialog.Builder(this)
                        .setTitle("   ")                //     
                        .setMessage("      ") //          
                        .setIcon(R.drawable.pic_m) //   LOGO
                        .create(); //         
                dialog.show() ;        //      
        }
}
複数種類の操作ボタン
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setTitle("    ?")                //     
                                .setMessage("           ?") //          
                                .setIcon(R.drawable.pic_m) //   LOGO
                                .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setNeutralButton("    ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).create(); //         
                        dialog.show() ;        //      
                }
               
        }
}
終了ボタン
public class MyDialogDemo extends Activity {
        private ImageButton but = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.but = (ImageButton) super.findViewById(R.id.but) ;        //     
                this.but.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        MyDialogDemo.this.exitDialog() ;
                }
               
        }
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) { //     
                if (keyCode == KeyEvent.KEYCODE_BACK) {        //    
                        this.exitDialog() ;
                }
                return false ;
        }
        private void exitDialog(){
                Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                        .setTitle("    ?")                //     
                        .setMessage("          ?") //          
                        .setIcon(R.drawable.pic_m) //   LOGO
                        .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                        MyDialogDemo.this.finish() ;        //     
                                }
                        }).setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                       
                                }
                        }).create(); //         
                dialog.show() ;        //      
        }
}
リストダイアログ
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        private TextView mych = null ;        //     
        private String fruitData[] = new String[] { "  ", "  ", "   " };
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mych = (TextView) super.findViewById(R.id.mych) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setIcon(R.drawable.pic_m)
                                .setTitle("          ?")
                                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setItems(MyDialogDemo.this.fruitData, new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                                        MyDialogDemo.this.mych
                                                                                        .setText("       :"
                                                                                                        + MyDialogDemo.this.fruitData[which]);
                                        }
                                }).create() ;
                        dialog.show() ;
                }
               
        }
}
リソースファイル構成オプション以上の例:呼び出しプロファイルデータXml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <string-array name="fruit_labels">
                <item>  </item>
                <item>  </item>
                <item>   </item>
        </string-array>
</resources>
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        private TextView mych = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mych = (TextView) super.findViewById(R.id.mych) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setIcon(R.drawable.pic_m)
                                .setTitle("          ?")
                                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setItems(R.array.fruit_labels, new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                                        MyDialogDemo.this.mych
                                                                                        .setText("       :"
                                                                                                        + MyDialogDemo.this
                                                                                                                        .getResources()
                                                                                                                        .getStringArray(
                                                                                                                                        R.array.fruit_labels)[which]);
                                        }
                                }).create() ;
                        dialog.show() ;
                }
ラジオダイアログ
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        private TextView mych = null ;        //     
        private TextView mytext = null ;        //     
        private String fruitData [] = new String[] { "  ", "  ", "   " };
        private String fruitDesc [] = new String[] {
                        "  ,     ,    ,         ,   、       。",
                        "  (  :Citrullus Lanatus,  :Watermelon),    ,     。",
                        "   ,            ,  ,   ,      。"} ;
        private int chNum = 0 ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mych = (TextView) super.findViewById(R.id.mych) ;        //     
                this.mytext = (TextView) super.findViewById(R.id.mytext) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setIcon(R.drawable.pic_m)
                                .setTitle("          ?")
                                .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                                       
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                                        MyDialogDemo.this.mych
                                                                .setText(MyDialogDemo.this.fruitData[MyDialogDemo.this.chNum]);        //        
                                        }
                                })
                                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setSingleChoiceItems(MyDialogDemo.this.fruitData, 0, new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                                                        MyDialogDemo.this.mytext
                                                                                        .setText(MyDialogDemo.this.fruitDesc[which]);
                                                                        MyDialogDemo.this.chNum = which ;        //        
                                        }
                                }).create() ;
                        dialog.show() ;
                }
               
        }
}
チェックボックスダイアログ
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        private TextView mych = null ;        //     
        private String fruitData [] = new String[] { "  ", "  ", "   " };
        private boolean chData[] = new boolean[] { true, true, false };
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mych = (TextView) super.findViewById(R.id.mych) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setIcon(R.drawable.pic_m)
                                .setTitle("          ?")
                                .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                                       
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                        }
                                })
                                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                                        })
                                        .setMultiChoiceItems(MyDialogDemo.this.fruitData,
                                                        MyDialogDemo.this.chData,
                                                        new DialogInterface.OnMultiChoiceClickListener() {
                                                                @Override
                                                                public void onClick(DialogInterface dialog,
                                                                                int which, boolean isChecked) {
                                                                        for (int x = 0; x < MyDialogDemo.this.fruitData.length; x++) {
                                                                                if(x == which && isChecked) {        //        
                                                                                        MyDialogDemo.this.mych
                                                                                                        .append(MyDialogDemo.this.fruitData[x]
                                                                                                                        + "、");
                                                                                }
                                                                        }
                                                                }
                                                        }).create();
                        dialog.show() ;
                }
               
        }
}
カスタムダイアログ
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        LayoutInflater factory = LayoutInflater.from(MyDialogDemo.this) ;
                        View myView = factory.inflate(R.layout.login, null) ;
                        Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
                                .setIcon(R.drawable.pic_m)
                                .setTitle("    ")
                                .setPositiveButton("  ", new DialogInterface.OnClickListener() {
                                       
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                        }
                                })
                                .setNegativeButton("  ", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                               
                                        }
                                }).setView(myView).create();
                        dialog.show() ;
                }
               
        }
}
日付ダイアログボックス
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        Dialog dialog = new DatePickerDialog(MyDialogDemo.this,new DatePickerDialog.OnDateSetListener() {
                               
                                @Override
                                public void onDateSet(DatePicker view, int year, int monthOfYear,
                                                int dayOfMonth) {
                                        TextView text = (TextView) MyDialogDemo.this.findViewById(R.id.txt) ;
                                        text.setText("      :" + year + "-" + monthOfYear + "-" + dayOfMonth) ;
                                }
                        },1981,8,19) ; //     、 、 
                        dialog.show() ;        //      
                }
               
        }
}
時間ダイアログボックス
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                             Dialog dialog = new TimePickerDialog(MyDialogDemo.this,new TimePickerDialog.OnTimeSetListener() {
                                @Override
                                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                                        TextView text = (TextView) MyDialogDemo.this.findViewById(R.id.txt) ;
                                        text.setText("   :" + hourOfDay + ":" + minute) ;
                                }
                        },19,20,true) ;
                        dialog.show() ;        //      
                }
               
        }
}
進捗ダイアログボックス
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        final ProgressDialog proDia = ProgressDialog.show(MyDialogDemo.this,
                                        "    ", "     ...");
                        new Thread(){
                                public void run(){        //       
                                        try {
                                                Thread.sleep(3000) ;        //     
                                        } catch (Exception e) {
                                        } finally {
                                                proDia.dismiss() ;        //      
                                        }
                                }
                        }.start() ;
                        proDia.show() ;        //      
                }
               
        }
}
構築による進捗ダイアログボックス
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        final ProgressDialog proDia = new ProgressDialog(MyDialogDemo.this) ;
                        proDia.setTitle("    ") ;
                        proDia.setMessage("     ") ;
                        proDia.onStart() ;        //     
                        new Thread(){
                                public void run(){        //       
                                        try {
                                                Thread.sleep(3000) ;        //     
                                        } catch (Exception e) {
                                        } finally {
                                                proDia.dismiss() ;        //      
                                        }
                                }
                        }.start() ;
                        proDia.show() ;        //      
                }
               
        }
}
水平バー進捗
public class MyDialogDemo extends Activity {
        private Button mybut = null ;        //     
        private static final int MAX_PROGRESS = 100 ;        //    
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                super.setContentView(R.layout.main); //        
                this.mybut = (Button) super.findViewById(R.id.mybut) ;        //     
                this.mybut.setOnClickListener(new OnClickListenerImpl()) ;        //      
        }
        private class OnClickListenerImpl implements OnClickListener {
                @Override
                public void onClick(View view) {
                        final ProgressDialog proDia = new ProgressDialog(MyDialogDemo.this) ;
                        proDia.setTitle("    ") ;
                        proDia.setMessage("     ") ;
                        proDia.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) ;        //      
                        proDia.setMax(MAX_PROGRESS) ;        //         
                        proDia.setProgress(30) ;        //    30  
                        proDia.setButton("    ", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                        proDia.dismiss() ;        //      
                                }
                        }) ;
                        proDia.setButton2("    ", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                       
                                }
                        }) ;
                        proDia.onStart() ;        //     
                        new Thread(){
                                public void run(){        //       
                                        for (int x = 0; x < MAX_PROGRESS; x++) {
                                                try {
                                                        Thread.sleep(500); //     
                                                } catch (Exception e) {
                                                }
                                                proDia.incrementProgressBy(1) ;
                                        }
                                        proDia.dismiss() ;
                                }
                        }.start() ;
                        proDia.show() ;        //      
                }
               
        }
授業後の問題ダイアログボックスの作成にはどのようなステップがありますか?1ビルダーの作成   2属性2.1の設定 ヘッド:タイトル、アイコン2.2 ボディ:表示内容2.3末尾:ボタン3 dialogを作成する   4 dialogがカスタムダイアログボックスを作成する方法を表示しますか?レイアウトファイルxmlを作成レイアウトローダ用レイアウトローダロードレイアウトsetView()を作成し、表示します.