zoukankan      html  css  js  c++  java
  • 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;   }
    }

     

     

     

     

     

  • 相关阅读:
    博客园样式
    nginx
    Django-environ 加载 .env 配置文件
    uwsgi 常见命令
    ActionScript3.0(AS3)中的泛型数组Vector
    ADDED、ADDED_TO_STAGE、REMOVED、REMOVED_FROM_STAGE这几个事件的区别
    Sprite/MovieClip的Enter_Frame事件,不受addChild/removeChild影响
    “AS3.0高级动画编程”学习:第二章转向行为(下)
    “AS3.0高级动画编程”学习:第二章转向行为(上)
    [转载]等角(斜45度)游戏与数学
  • 原文地址:https://www.cnblogs.com/jubincn/p/3522541.html
Copyright © 2011-2022 走看看