Android -- Dialog(AlertDialog)

在Android中可以使用系统定义好的对话框,如AlertDialog、ProgressDialog、DatePickerDialog、TimePickerDialog,也可以自己定义比较特殊的对话框。


示例1:简单的AlertDialog


public class MainActivity extends Activity {
                                                
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v) {
                                                            
                new AlertDialog.Builder(MainActivity.this)
                .setIcon(R.drawable.ic_launcher)
                .setTitle("对话框")
                .setMessage("显示的内容")
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                                                
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub                     
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                                                
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub                     
                    }
                })
                .setNeutralButton("其他", null)//事件监听同上
                .show();               
            }
        });    
    }
}


运行结果:


示例2:包含列表的Dialog

public class MainActivity extends Activity {
    private String[] data ={"列表1","列表1","列表1"};
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v) {
                                             
                new AlertDialog.Builder(MainActivity.this)
                .setIcon(R.drawable.ic_launcher)
                .setTitle("列表对话框")
                .setItems(data, new DialogInterface.OnClickListener() {
                                                 
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub                 
                    }
                })
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                                 
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub                     
                    }
                })
                .show();               
            }
        });    
    }
}


运行结果:



示例3:自定义AlertDialog


public class MainActivity extends Activity {
    private String[] data ={"列表1","列表1","列表1"};
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v) {
                LayoutInflater factory=LayoutInflater.from(MainActivity.this);
                final View view=factory.inflate(R.layout.cell, null);
                            
                new AlertDialog.Builder(MainActivity.this)
                .setIcon(R.drawable.ic_launcher)
                .setTitle("自定义对话框")
                .setView(view)
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub                     
                    }
                })
                .show();               
            }
        });    
    }
}

运行结果:


你可能感兴趣的:(AlertDialog)