2015-11-25 26 views
0

我是Android的新手,當我用材料設計製作應用程序時遇到問題。我遵循this教程,並創建一個片段,允許搜索這張圖片enter image description here。 單擊搜索按鈕後,將顯示片段結果,如此enter image description here如何在android的導航抽屜中設置後退圖標的動作?

但我不知道如何在工具欄中設置後退圖標的動作來回退前一個片段。當我回退圖標時,它總是顯示導航抽屜,當我在設備上觸摸回圖標時,我只能返回前一個片段,但是當我這樣做時,工具欄的標題不會更改。例如,當我在片段resutl,如果我點擊回到設備上,我會回到搜索片段,但工具欄的標題是結果的標題。請幫幫我。 p/s:很抱歉,如果這個問題很愚蠢,但我更堅持三天。我也搜索谷歌和stackoverflow,但也許我不完全瞭解導航抽屜,所以我嘗試但無法解決。我也很抱歉,如果我錯誤的語法,因爲我的英語不好,並感謝您閱讀我的問題 這裏是我的代碼,以取代fragement搜索票成Result。

public void DataBundle(ArrayList<TicketInforModel> ticketInforModels){ 
     ResultFragment rFrag = new ResultFragment(); 
     Bundle packageDataStation = new Bundle(); 
     packageDataStation.putSerializable("arrTicket",ticketInforModels); 
; 
     rFrag.setArguments(packageDataStation); 
     //noinspection ResourceType 
     FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(R.id.container_body, rFrag); 
     fragmentTransaction.addToBackStack(null); 
     fragmentTransaction.commit(); 

     // set the toolbar title 
     Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);//get Toolbar from SearchingTicketActivity 
     ((SearchingTicketActivity)getActivity()).setSupportActionBar(toolbar); 
     ((SearchingTicketActivity)getActivity()).getSupportActionBar().setTitle(R.string.title_result); 

     toolbar.setNavigationIcon(R.drawable.ic_back); 

     // toolbar.dismissPopupMenus(); 
    } 
+0

查看編輯答案。 –

回答

0

試試這個

toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      getSupportFragmentManager.popBackStackImmediate(); 
     } 
    }); 
+0

我也試過了,但它不適合我。你是越南人嗎? –

+0

是的,我是越南人。按下後,您想更改工具欄的標題嗎?在Fragment的onCreateView()函數中,嘗試實現getActivity()。setTitle(「Namse Fragment」)函數 –

+0

我是越南人,太大聲了。謝謝你的回答,但getActivity()。setTitle(「Namse Fragment」)不起作用。點擊返回圖標時仍然保留舊片段的標題。以及我如何禁用或關閉菜單?當我在片段中繪製時,菜單始終顯示。 –

1

監聽點擊事件的android.R.id.home像往常一樣:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      // Respond to the action bar's Up/Home button 
      case android.R.id.home: 
      //Do your stuff 
      break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

注:在這種情況下,它是很好的做法,以顯示結果在新Activity時你按下搜索按鈕,你可以在finish()之後找回結果activity pre在toolbar中按home/up按鈕。不要讓它變得如此複雜。

+0

我曾嘗試過,但它不適合我。 –

+0

感謝您的建議,我會爲下一次申請做。因爲我想嘗試使用片段,所以我做我的應用程序,如教程:( –