0

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

@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再次按下。如何避免这种情况?

4

3 回答 3

2

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

当用户从第二个活动按下返回按钮时,将调用第一个活动的 onResume()。

希望这可以帮助!!

于 2012-06-20T13:01:25.877 回答
2

你可以用这个方法调用后面的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);
    }

我希望这会帮助你

于 2012-06-20T13:04:02.210 回答
0

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

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

于 2012-06-20T13:09:26.063 回答