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