2017-06-28 81 views
-1

這似乎是一個常見問題,有很多被接受的答案,但它們都不適合我。片段中的工具欄在啓動時崩潰應用程序

大多數的答案建議使用這段代碼將工具欄添加到一個片段:

mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar); 
    if (mToolbar != null) { 
     ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 
    } 

唉,這仍然崩潰,即使我使用AppCompatActivity我的應用程序。我認爲這個錯誤可能在於我的Fragment類擴展了Fragment而不是AppCompatActivity,但是我還沒有足夠了解android,因爲還沒有確定這一點。它在setSupportActionBar行上崩潰。

我的代碼片段:

package erikligai.ribbitapplication; 

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

/** 
* Created by erik on 2017-06-07. 
*/ 

public class MessageFragment extends Fragment { 

    Toolbar mToolbar; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
//  return inflater.inflate(R.layout.message_fragment_layout, container, false); 
     View rootView = inflater.inflate(R.layout.message_fragment_layout, container, false); 

     mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar); 
     if (mToolbar != null) { 
      ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 
     } 

     return rootView; 
    } 

將不勝感激的任何建議。

+0

投從getActivity()AppCompatActivity

((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(); 

ToolbarActivity饒人,我不認爲你有NullPointerException異常。 你爲什麼試圖從工具欄的片段視圖? – fbwnd

+0

發佈你的logcat。 – SripadRaj

+0

此外,委託工具欄的通貨膨脹活動,而不是片段 –

回答

1

您需要將活動從Fragment

mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar);