• Android 4 学习(21):对话框


    对话框

    创建Dialog的两种方式:

    1. 使用Dialog类或其子类,包括DialogFragment

    2. Activity中使用Dialog主题(theme

    下面是使用Dialog类的一个例子:

     

    // Create the new Dialog.
    Dialog dialog = new Dialog(MyActivity.this);
    // Set the title. dialog.setTitle(“Dialog Title”); // Inflate the layout. dialog.setContentView(R.layout.dialog_view); // Update the Dialog’s contents.
    TextView text = (TextView)dialog.findViewById(R.id.dialog_text_view);
    text.setText(“This is the text in my dialog”);
    // Display the Dialog. dialog.show();

     

    也可以使用Dialog的子类,例如常用的AlertDialog

     

    Context context = MyActivity.this;
    String title = “It is Pitch Black”;
    String message = “You are likely to be eaten by a Grue.”;
    String button1String = “Go Back”;
    String button2String = “Move Forward”; AlertDialog.Builder ad = new AlertDialog.Builder(context);
    ad.setTitle(title);ad.setMessage(message); ad.setPositiveButton(button1String,
    new DialogInterface.OnClickListener() {   public void onClick(DialogInterface dialog, int arg1) {     eatenByGrue();   } }); ad.setNegativeButton(button2String, new DialogInterface.OnClickListener(){   public void onClick(DialogInterface dialog, int arg1) {     //do nothing   } });

     

    还可以设置是否显示Cancel按钮:

     

    ad.setCancelable(true); 
    ad.setOnCancelListener(new DialogInterface.OnCancelListener() { 
      public void onCancel(DialogInterface dialog) { 
        eatenByGrue();   }
    });

     

    使用内置的Dialog

    Android中提供了这些现成的Dialog供我们使用:

    1. CharacterPickerDialog 

    2. DatePickerDialog 

    3. TimePickerDialog 

    4. ProgressDialog 

    使用Fragment

    Android中几乎所有的可见部分都可以放到Fragment中,我认为Fragment相对于View的一大优点是可以控制自己的生命周期。

     

    public class MyDialogFragment extends DialogFragment {
      private static String CURRENT_TIME = “CURRENT_TIME”; 
      public static MyDialogFragment newInstance(String currentTime) {
        // Create a new Fragment instance with the specified parameters.
        MyDialogFragment fragment = new MyDialogFragment();
        Bundle args = new Bundle();     args.putString(CURRENT_TIME, currentTime);     fragment.setArguments(args);     return fragment;   }
    }

     

     

     

     

     

  • 相关阅读:
    Laravel模型间关系设置分表方法详解
    11个PHP程序员最常犯的MySQL错误
    教你使用swoole监听redis数据
    使用 Docker 环境来开发 PHP,Laradock 系列 1
    tp5 workerman安装不上解决方法
    一种颗粒度很小的 Laravel 路由文件划分方式
    VT 调试环境搭建
    masm32基本配置与写出第一个汇编程序
    [debug] 解决pycharm中无法import自己建立的模块问题
    《Windows内核安全与驱动开发》 7.1&7.2&7.3 串口的过滤
  • 原文地址:https://www.cnblogs.com/jubincn/p/3522541.html
Copyright © 2020-2023  润新知