搜尋此網誌

顯示具有 backButton 標籤的文章。 顯示所有文章
顯示具有 backButton 標籤的文章。 顯示所有文章

2015年9月20日 星期日

【Android】移除FragmentManager裡的BackStack entry

ref:
Is this the right way to clean-up Fragment back stack when leaving a deeply nested stack?
http://shareandopen.tumblr.com/post/35328568659/android-clear-all-back-stack

為了好的使用者體驗,希望在程式運作到某一個情境時,清除所有的back stack entry,讓使用者不要在按下back按鍵時,發生一些悲劇體驗的話,可以利用程式碼來清除back stack entry。

// In your FragmentActivity use getSupprotFragmentManager() to get the FragmentManager.

// Clear all back stack.
int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
for (int i = 0; i < backStackCount; i++) {

    // Get the back stack fragment id.
    int backStackId = getSupportFragmentManager().getBackStackEntryAt(i).getId();

    fm.popBackStack(backStackId, FragmentManager.POP_BACK_STACK_INCLUSIVE);

} /* end of for */

2015年1月8日 星期四

【Android】ActionBar最左邊返回鍵


private ActionBar mActionBar;

mActionBar = getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(true);   //顯示返回符號,在android 2.3測試,若setDis                                                  //playHomeAsUpEnabled沒寫,則無任何動作發生
mActionBar.setDisplayHomeAsUpEnabled(true);   //不顯示返回符號,在onOptionsItemSelected須設定                                              //按下後動作
mActionBar.setTitle("Title ");

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 // app icon in action bar clicked; goto parent activity.
  onBackPressed();
  return true;
   ...
}
}


-----------------------------------------
//可改寫返回鍵的內容設定
@Override
public void onBackPressed() {
 Intent intent = new Intent(this, MainActivity.class);
 intent.putExtra("test", "i am come from Mainactivity2activity");
 setResult(RESULT_OK, intent);
 
 closeDB();
 finish();
}