Ошибка `void android.support.v7.widget.Toolbar.setTitleTextColor (int)` android studio

У меня два фрагмента заменены на одной странице. но при запуске приложения вижу эту ошибку: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.Toolbar.setTitleTextColor(int)' on a null object reference

Это мой activity_main.xml:

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    xmlns:tools = "http://schemas.android.com/tools"
    android:id = "@+id/drawer_layout"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:background = "@color/background"
    android:layoutDirection = "rtl">

    <ScrollView
        android:layout_width = "match_parent"
        android:layout_height = "match_parent">
        <FrameLayout
            android:id = "@+id/fragment_container"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent">

        </FrameLayout>
    </ScrollView>
    <android.support.design.widget.NavigationView
        android:id = "@+id/nav_view"
        android:layout_width = "wrap_content"
        android:layout_height = "match_parent"
        android:layout_gravity = "start"
        app:headerLayout = "@layout/layout_navigation_header"
        app:menu = "@menu/drawer_view" />
</android.support.v4.widget.DrawerLayout>

Это моя полная MainActivity, в которой есть метод RFragment для замены:

import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;


import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

import com.example.exampleOne.myapplication.Adapter.AdapterSpecial;
import com.example.exampleOne.myapplication.DataFake.DataFakeGenerator;
import com.example.exampleOne.myapplication.Fragments.HomeFragment;


public class MainActivity extends AppCompatActivity {

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

        //change fragments with Navigation View
        NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
        RFragment(new HomeFragment());
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.nav_home:
                        break;
                    case R.id.nav_login:
                        break;

                }
                return true;
            }
        });




        RecyclerView recyclerView = findViewById(R.id.special_offers_re);
        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
        recyclerView.setAdapter(new AdapterSpecial(this, DataFakeGenerator.SpecailProduct(this)));

        RecyclerView recyclerView1 = findViewById(R.id.special_offers_re1);
        recyclerView1.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
        recyclerView1.setAdapter(new AdapterSpecial(this, DataFakeGenerator.SpecailProduct(this)));
    }

    public void setupToolbar() {
        Toolbar toolbar = findViewById(R.id.toolbar);
        DrawerLayout drawerLayout = findViewById(R.id.drawer_layout);
        setSupportActionBar(toolbar);

        ActionBar actionBar = getSupportActionBar();
        toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.white));
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);

        ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, 0, 0);
        actionBarDrawerToggle.syncState();


    }

    public void RFragment(Fragment fragment){
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.fragment_container,fragment);
        fragmentTransaction.commit();

    }
}

показать полный код части mainActivity

Radesh 28.07.2018 09:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
181
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит потому, что у вас нет панели инструментов в файле activity_main.xml.

Эта строка показывает, что вы хотите найти панель инструментов просмотра, которой нет в activity_main.xml.

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

Итак, вы получили ошибку в строке ниже, потому что панель инструментов не существует и ее значение null

toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.white));

الان تو activity_main.xml د با ایدی панель инструментов رو به من نشون بده

Radesh 28.07.2018 10:04

ببین تو ایکس ام ال هیچ تولباری نساختی هیچ آیدی ای نیست به اسم

Radesh 28.07.2018 10:04

"@ + id / toolbar" не существует в activity_main.xml

Radesh 28.07.2018 10:05

بله درسته .واقعا ممنون دارم .دارم کد ها رو به فرگمنت که تولبار توش هست انتقال می دم.

ramtin m 28.07.2018 10:12

حله امیدوارم موفق باشی

Radesh 28.07.2018 10:30

Другие вопросы по теме