2013-04-04 105 views
3

如何将对话/活动保持在其他活动的顶层,无论用户在活动之间切换,它都应始终保持活跃状态​​。始终将对话框/活动保持在最前面

Look at Show, Hide buttons

+0

在onResume()中显示每个活动的onResume()中的对话消除它在onPause() – Raghunandan 2013-04-04 13:33:58

+0

@Raghunandan以及,我认为这不是一个好方法 – azimov 2013-04-04 13:39:27

+0

你认为这不是一个好方法? – Raghunandan 2013-04-04 13:40:21

回答

3

您可以使用相对布局作为家长,通过使用相对布局,您可以重叠的其他布局。所以,你必须使用相对布局的两个子布局。在一个孩子,你将弹出,并在另一个布局,你必须不断改变你的布局。

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

您可以创建一个基地活动,具有上述布局,在你想要这个布局中的所有其他活动扩展了活动。

问候, Yuvi

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)你把一捆下一个活动可以获取并再次显示的对话框的类型。