我有一个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
}
}
}
答案 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