2015-07-28 64 views
0
  • 我要搬到Detailfragment到GridActivity.Workflow的活動 是GridActivity - > HomeActivity-> DetailFragment。單擊片段硬件後退按鈕搬回GridActivity

  • 在GridActvity中,我正在使用圖像按鈕。單擊圖像按鈕I 已設置移動HomeActivity onArticlelistener的位置。

  • 有了這個監聽器,我可以移動到使用位置片段。

GridActivity1.java:

int position; 

    ........ 
    ........ 
    @Override 
    public void onClick(View v) { 

     switch (v.getId()) { 

     case R.id.btn_tour: 

       Intent i1=new Intent(GridActivity1.this,MainActivity.class); 

       i1.putExtra("tour",2); 
       i1.putExtra("position", position); 
       startActivity(i1); 
       break; 
    } 
    } 

MainActivity.java:

public class MainActivity extends ActionBarActivity implements OnTabChangeListener,ArticleSelectedListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.app_main_tab_fragment_layout); 

    posGrid= getIntent().getExtras().getInt("position"); 

     switch(posGrid){ 

      case 0: 

      int posTour = getIntent().getIntExtra("tour", 0); 
      articleSelected(posTour, "Tour Guide"); 

      break; 
     } 
     } 

@Override 
    public void onArticleSelected(int position, String content) 
    { 
     articleSelected(position, content); 

    } 

public void articleSelected(int position, String content) 
    { 

    if(position==2) 
     { 
      action_bar_hometext.setText(content); 
      FragmentManager manager = getFragmentManager(); 
      FragmentTransaction ft = manager.beginTransaction(); 
      DetailFragment newFragment = new DetailFragment(); 
      ft.replace(R.id.realtabcontent, newFragment); 
      ft.addToBackStack(null); 
      ft.commit(); 
     } 
    } 

DetailFragment.java:

public class TourGuideFirstFragment extends BaseFragment implements 
     OnItemClickListener { 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     final View view = inflater.inflate(R.layout.fragment_tour_guide, container, 
       false); 

    return view; 
    } 
    } 
  • 我不需要操作欄後退按鈕。因爲我使用導航 抽屜中的碎片。

  • 我的問題是,當我點擊DetailFragment中的硬件後退按鈕時,我需要直接移動到GridActivity.Now,它將移動到HomeActivity,然後返回到GridActivity。

回答

2

要添加FragmentTransaction到堆棧中,所以爲了擺脫這個你就必須爲你把它想從MainActivity

ft.addToBackStack(null); 

之後,它應該工作刪除行工作

+0

工程good.but我把一個null內addToBackStack.then這將如何發生? – Steve

+0

@Naruto這個方法的參數就像一個標籤,你可以看看[文檔頁面](http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang .String)),在大多數情況下你不需要它(這就是爲什麼在大多數情況下它是空的),除非你有某種定製的堆棧處理。但即使它爲空 - 條目仍將被添加到後臺 – Chaosit