使用BACK按钮重新启动上一个活动

时间:2012-06-20 12:54:38

标签: android android-activity back-button

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

@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();
    }

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

修改 还有一个问题是,在第二项活动中,我正在执行任务,第一项任务是从图库中选择一个视频。如果在此阶段按下BACK,则会出现空白屏幕,我必须再次按BACK。怎么避免这个?

3 个答案:

答案 0 :(得分:2)

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

当第二个活动的用户按下后退按钮时,将调用

第一个活动的onResume()。

希望这会有所帮助!!

答案 1 :(得分:2)

U可以使用此方法调用后面的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);
    }

我希望这会对你有所帮助

答案 2 :(得分:0)

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

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