我在清理堆棧中的活動時遇到困難。這是我迄今爲止所做的,我有3個活動,即:登錄,主要和配置文件。第一項活動是登錄。如果成功,該應用將轉到主要活動。在主要活動內部,我有一個按鈕可用於配置文件活動。清除堆棧不能正常工作的活動
LogoutAlertDialog.class
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
OnClickListener positiveClick = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity().getBaseContext(),
"Logging out...", Toast.LENGTH_SHORT).show();
Intent i = new Intent(getActivity(), Login.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
getActivity().finish();
}
};
OnClickListener negativeClick = new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Are you sure you want to logout?");
builder.setNegativeButton("No", negativeClick);
builder.setPositiveButton("Yes", positiveClick);
builder.setIcon(R.drawable.logout);
builder.setTitle("Logout");
Dialog dialog = builder.create();
return dialog;
}
Profile.class:
/**
* On selecting action bar icons
* */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Take appropriate action for each action item click
switch (item.getItemId()) {
case R.id.action_logout:
edit = shared.edit();
edit.putString("Username", "");
edit.putString("isLoggedIn", "no");
edit.commit();
FragmentManager fm = getFragmentManager();
LogoutAlertDialog alert = new LogoutAlertDialog();
alert.show(fm, "");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
但是,當我嘗試這樣做,應用程序去我Login.class - 活動,但是當我點擊後退按鈕,這是回到主要活動。
有人知道我的代碼有什麼問題嗎?非常感謝任何幫助。謝謝。
UPDATE:
我已經將這個活動:
<activity
android:name="com.example.sample.Profile"
android:label="@string/myprofile"
android:parentActivityName="com.example.sample.MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在我AndroidManifest,因爲我使用的是動作條,它可以讓用戶返回到它的父活動。這有什麼問題嗎? 。
一個固定電話'getActivity()結束();''開始活動Login' @ –
後ρяσѕρєяK我試圖這樣做,還是一樣 – Dunkey
只是刪除addflag行..然後在開始活動後完成().. – Ranjit