使用“后退”按钮重新启动上一个活动



有两个活动。以下是第一个活动。

@Override
public void onCreate(Bundle savedInstanceState) {
    try {
        super.onCreate(savedInstanceState);
        final CharSequence[] items = {"Pick from gallery", "Shoot now"};
        //Prepare the list dialog box
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //Set its title
        builder.setTitle("Choose a video");
        //Set the list items along with checkbox and assign with the click listener
        builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
            // Click listener
            public void onClick(DialogInterface dialog, int item) {
                if(items[item]=="Pick from gallery"){
                    Toast.makeText(getApplicationContext(), "Choose a video", Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                    Intent r1= new Intent("com.asin.amit.PIC");
                    r1.putExtra("choice", 1);
                    startActivity(r1);
                }
                if(items[item]=="Shoot now"){
                    Toast.makeText(getApplicationContext(), "Record a video", Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                    Intent r1= new Intent("com.asin.amit.PIC");
                    r1.putExtra("choice", 2);
                    startActivity(r1);
                }    
            }
        });
        AlertDialog alert = builder.create();
        //display dialog box
        alert.show();
    } 
    catch(Exception e)
    {
        Toast.makeText(getApplicationContext(), "Unknown issue, Kindly restart the application", Toast.LENGTH_LONG).show(); 
        e.printStackTrace();
    }

当用户处于第二个活动并按下"返回"按钮时,我希望第一个活动开始,但现在只出现黑屏,弹出菜单不可见。我必须旋转手机才能获得菜单。默认情况下如何制作?另外,是否需要将try用于super.onCreate

编辑另一个问题是,在第二个活动中,我正在执行任何任务,第一个任务是从图库中挑选视频。如果在此阶段按下BACK,则会出现空白屏幕,我必须再次按BACK。如何避免这种情况?

尝试在onResume()方法中编写alert.show();,而不是在onCreate()中编写。

当用户从第二个活动预示后退按钮时,将调用第一个活动的 onResume()。

希望这有帮助!!

可以使用

此方法调用 back Activity

这是我在我的应用程序中使用的一个示例

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            // _progressDialog.dismiss();
            if (getIntent().getExtras().getString("From").equals("Menu")) {
                Intent intent = new Intent(getApplicationContext(),
                        VideoTypes.class);
                intent.putExtra("From",
                        getIntent().getExtras().getString("From"));
                startActivity(intent);
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }

我希望这会对你有所帮助

super.onCreate()是必需的。如果您不调用它,应用程序将崩溃。

您可以使用 startActivityForResult(),而不是 startActivity() 。因此,您可以在第二个活动完成后捕获事件,然后再次显示菜单。

最新更新