2017-06-28 13 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);