将对话框从一个活动传递到另一个活动

时间:2014-08-30 22:14:55

标签: java android android-activity android-dialog

我正在尝试创建一个简单的加载屏幕,我不需要任何进度条或任何只是图像。

我需要什么: -

- 开始活动A

单击活动B的按钮

- 单击按钮也会启动一个对话框,只在活动B正在加载时显示我的图像

- 一旦加载了活动B我想保持对话框显示,直到我的渲染器加载完所有纹理。

是否可以将活动对话框从一个活动传递到另一个活动?

    //Activity A
    StartButton.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View arg0) 
        {
            Intent intent = new Intent(context, ActivityB.class);               
            Dialog loader_dialog = new Dialog(context,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
            loader_dialog.setContentView(R.layout.loading_screen);
            loader_dialog.show();
            //this obviously doesnt work but is there something similar i can do?
            //intent.putExtra("LoadingScreen", loader_dialog); 
            startActivity(intent); 
            finish(); 
        } 
    }); 

如果不可能,还有其他方法可以达到预期的效果吗?

2 个答案:

答案 0 :(得分:1)

您可以创建对话框并让它出现在下一个活动的onCreate()或onStart()方法中 - B活动:

public class ActivityB extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Dialog loader_dialog = new Dialog(context,android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        loader_dialog.setContentView(R.layout.loading_screen);
        loader_dialog.show();  

        ...
    }

}

我认为可以执行你想要的任务。

答案 1 :(得分:1)

如果您确实希望在转换到第二个Activity期间显示对话框,则可以使用一个Activity而不是两个Activity,并更改该Activity的布局以使用第二个Activity的布局,而不是调用另一个Activity。但是,这可能很复杂,因为您将两个活动的功能集成到一个活动中。


修改

您可以使用片段代替活动。