始终保持对话/活动在顶部

时间:2013-04-04 13:32:08

标签: android android-activity dialog android-widget

如何将对话/活动保持在其他活动之上,无论用户是否在活动之间切换,它都应该一直活着。

Look at Show, Hide buttons

2 个答案:

答案 0 :(得分:3)

您可以使用相对布局作为父级,通过使用相对布局,您可以与其他布局重叠。所以,你必须使用相对布局的两个子布局。在一个孩子中你将有弹出窗口,在另一个布局中你必须不断改变你的布局..

如果您希望跨多个活动。您必须创建一个单独的布局并将其包含在所有活动中,并创建一个界面来处理弹出窗口中的按钮事件。

您可以创建具有上述布局的基本活动,并在您希望此布局的所有其他活动中扩展该活动。

此致 Yuvi

答案 1 :(得分:1)

Personnaly,我会做那样的事情:

1)创建一个从DialogFragment扩展的类:

    public class MyDialogFragment extends DialogFragment{
        public static final int DIALOG_TYPE1 = 1;

        public static MyDialogFragment newInstance(int dialogType) {
                MainDialogFragment frag = new MainDialogFragment();
                Bundle args = new Bundle();
                args.putInt("type", dialogType);
                frag.setArguments(args);
                return frag;
            }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
                super.onCreateDialog(savedInstanceState);
                int type = getArguments().getInt("type");
                Dialog result = null;
                switch (type) {
                case DIALOG_TYPE1:
                              result = new AlertDialog.Builder(getActivity())
                                 .setTitle("TITLE")
                                 .setMessage("MESSAGE")
                                 .setPositiveButton(android.R.string.ok, null)
                                 .create();
                              break;
                        default:
                              break;
                }
                return result;
         }
}

2)然后在你的活动中:

DialogFragment dialog = MyDialogFragment.newInstance(MyDialogFragment.DIALOG_TYPE1);
dialog.show(getFragmentManager(), "DIALOG");

3)然后你输入一个对话框的类型,下一个活动可以获得它并再次显示它。