Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何销毁活动并显示片段?_Java_Android_Android Activity_Android Fragments - Fatal编程技术网

Java 如何销毁活动并显示片段?

Java 如何销毁活动并显示片段?,java,android,android-activity,android-fragments,Java,Android,Android Activity,Android Fragments,我有一个MainActivity,它有一个导航抽屉和一个framelayout容器来显示不同的片段。在我的导航抽屉上有一个选项,可以启动另一个活动(lockpattern活动)来显示锁定模式(必须使用活动,因为库还不支持片段)。一旦用户设置了模式或取消了该过程,我希望lockpattern活动被销毁,并显示上一个mainActivity和启动lockpattern活动之前容器中的相同片段。我面临的问题是,一旦按下backbutton,或者即使我调用finish()函数,它也不会显示上一个活动(即

我有一个MainActivity,它有一个导航抽屉和一个framelayout容器来显示不同的片段。在我的导航抽屉上有一个选项,可以启动另一个活动(lockpattern活动)来显示锁定模式(必须使用活动,因为库还不支持片段)。

一旦用户设置了模式或取消了该过程,我希望lockpattern活动被销毁,并显示上一个mainActivity和启动lockpattern活动之前容器中的相同片段。我面临的问题是,一旦按下backbutton,或者即使我调用
finish()
函数,它也不会显示上一个活动(即主活动)但会重新启动锁定模式活动。我甚至尝试了
super.onBackPressed();
,但它似乎不起作用。我们非常感谢您提供的任何帮助或想法

密码锁模式

public class Create_Pattern extends Activity {
private static final int REQ_CREATE_PATTERN = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {

    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    // This is your preferred flag
    LockPatternView.MATRIX_WIDTH = 4;
    Intent intent = new Intent(LockPatternActivity.ACTION_CREATE_PATTERN,
            null, getBaseContext(), LockPatternActivity.class);
    startActivityForResult(intent, REQ_CREATE_PATTERN);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    switch (requestCode) {
    case REQ_CREATE_PATTERN: {
        if (resultCode == RESULT_OK) {
            char[] pattern = data
                    .getCharArrayExtra(LockPatternActivity.EXTRA_PATTERN);
            DataBaseHandler handler = new DataBaseHandler(this);
            handler.open();

            String PatternToWrite = new String(pattern);
            handler.createPattern(PatternToWrite);
            handler.close();
            Log.d("DEBUG", new String(pattern));

            Toast.makeText(getApplicationContext(), "Pattern Recorded",
                    Toast.LENGTH_LONG).show();
            finish();

        }
        if (resultCode == RESULT_CANCELED) {
            finish();

        }
        break;
    }// REQ_CREATE_PATTERN

    }

}
}

您应该创建一个指向下一个要导航到的活动的新意图,通过调用startActivity(Intent)启动该活动。然后可以调用finish()来销毁当前活动

另一种方法(我还没有尝试过)是创建一个“向上按钮”层次结构,并手动调用NavUtils.navigateUpFromSameTask(this)

文件: