如何破坏活动和显示片段?

时间:2014-11-10 10:55:36

标签: java android android-activity android-fragments

我有一个MainActivity,它有一个导航抽屉和一个framelayout容器来显示不同的片段。在我的导航抽屉上有一个选项,它启动另一个活动(lockpattern活动)来显示一个锁模式(必须使用活动,因为库还没有支持碎片。Link to Library)。一旦用户设置了他的模式或取消了程序,我希望锁模式活动被销毁,并显示之前的mainActivity和相同的片段在启动lockpattern活动之前容器中的内容。我遇到的问题是一旦按下后退按钮或者即使我调用finish()函数,它也不会显示先前的活动(即主要活动),而是重新启动lockpattern activity.i甚至尝试过super.onBackPressed();并且它似乎没有用。感激地接受任何帮助或想法来解决这个问题。

Lockpattern代码

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

    }

}
}

1 个答案:

答案 0 :(得分:0)

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

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

文档:

http://developer.android.com/training/implementing-navigation/ancestral.html http://developer.android.com/reference/android/support/v4/app/NavUtils.html