2 votes

TextView à l'intérieur de la barre d'outils nulle avec Butterknife

Je ne demande pas la solution mais je veux savoir pourquoi TextView à l'intérieur de Toolbar est renvoyé null ? J'utilise Butterknife à l'intérieur d'un fragment.

@BindView(R2.id.toolbarTitle)
    TextView toolbarTitle;

Voici mon layout :

Voici mon logcat :

java.lang.NullPointerException: Tentative d'appeler la méthode 'void android.widget.TextView.setText(java.lang.CharSequence)' sur une référence d'objet null

D'accord voici le code demandé :

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_nav_bookmark_trend_my_quote, container, false);
        toolbarTitle.setText(getString(R.string.bookmarks));
        accessToken = AppSharedPreferences.getsharedprefInstance(getContext()).getStringValue(AppSharedPreferences.KEY_USER_TOKEN);
        mUnbinder = ButterKnife.bind(this, view);
        mLinearLayout = new LinearLayoutManager(getActivity());
        mRecyclerView.setLayoutManager(mLinearLayout);

        DrawerLayout drawer = ((EpicSwiperActivity) getActivity()).drawerLayout;
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                getActivity(), drawer, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        addRecyclerViewScrollState(mRecyclerView);
        return view;
}

0voto

Jaymin Panchal Points 2098

Juste essayez ceci

Toolbar toolbar = (Toolbar) findViewById(toolbar_widget);
getActivity().setSupportActionBar(toolbar);

TextView tvTitle = (TextView) toolbar.findViewById(R.id.toolbarTitle);
tvTitle.setText(title);

Par ButterKnife juste essayez ceci

TextView textView = ButterKnife.findById(toolbar, R.id.toolbarTitle);

{{ MODIFIER }}

toolbar.xml

fragmentlayout.xml

dans votre fichier Java

View toolbarView = getLayoutInflater().inflate(R.layout.toolbar,null);
TextView textView = ButterKnife.findById(toolbarView, R.id.toolbarTitle);

0voto

Chathu_sm Points 65

Avez-vous correctement défini votre toolbar comme une ActionBar sinon faites-le comme suit:

ToolBar toolbar = (Toolbar) findViewById(R.id.toolbar_widget);
setSupportActionBar(toolbar);

0voto

Mohammed Junaid Points 780

Faites correspondre l'ID de votre TextView avec l'ID que vous avez utilisé sur @BindView.

Et comme vous utilisez un fragment, assurez-vous de passer la vue racine du fragment ainsi que le contexte lorsque vous appelez ButterKnife.bind(this, rootView);

par exemple

View view = inflater.inflate(R.layout.fancy_fragment, container, false);
    ButterKnife.bind(this, view);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X