2017-01-26 3 views
-1

Это, по-видимому, вопрос, который задавался несколько раз, но имеет только решения в каждом конкретном случае. Я делаю aap с панелью инструментов, и когда я перехожу во вторую активность, я хочу, чтобы панель инструментов отображалась значок, а также меню настроек, но, к сожалению, панель инструментов появляется, но значки не отображаются. Также монитор Android отображает исключение нулевого указателя в этих строках кодаОшибка изображения панели инструментов

getSupportActionBar(). setDisplayHomeAsUpEnabled (true);

getSupportActionBar(). SetHomeButtonEnabled (true);

Error pic

Это мой activity_main

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.zaina.toolbar.MainActivity"> 
    <include android:id="@+id/aap_bar" layout="@layout/aap_bar"></include> 
    <TextView 
     android:layout_below="@id/aap_bar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World!" /> 
</RelativeLayout> 

Это мой MainActivity.java

package com.example.zaina.toolbar; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ImageView; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    Toolbar toolbar; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     toolbar = (Toolbar) findViewById(R.id.aap_bar); 
     setSupportActionBar(toolbar); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu item) { 
     getMenuInflater().inflate(R.menu.menu_main, item); 
     return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem menuItem){ 
     int id=menuItem.getItemId(); 
     if(R.id.action_favorite==id){ 
      startActivity(new Intent(this,aap.class)); 
      return true; 
     } 
     if(R.id.action_settings==id){ 
      Toast.makeText(MainActivity.this, "Hey you hit", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
     return onOptionsItemSelected(menuItem); 
    } 
} 

Это мой aapbar_xml.xml

<?xml version="1.0" encoding="utf-8"?> 

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:aap="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="@color/colorPrimary" 
    aap:Theme="@style/MyCustom" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"> 
    </android.support.v7.widget.Toolbar> 

T его мой activity_aap.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.zaina.toolbar.aap"> 
    <include android:id="@+id/app_bar" layout="@layout/aap_bar"></include> 
</RelativeLayout> 

Это aap.java

package com.example.zaina.toolbar; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 

public class aap extends AppCompatActivity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_aap); 
     Toolbar toolbar= (Toolbar) findViewById(R.id.aap_bar); 
     setSupportActionBar(toolbar); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setHomeButtonEnabled(true); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu item) { 
     getMenuInflater().inflate(R.menu.menu_sub, item); 
     return true; 
    } 
} 

Это мой menu_sub.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:aap="http://schemas.android.com/apk/res-auto"> 
    <item android:id="@+id/za" 
     android:icon="@drawable/ic_chevron_left_black_24dp" 
     android:title="left" 
     aap:showAsAction="ifRoom"/> 
    <item android:id="@+id/zee" 
     android:title="sett" 
     aap:showAsAction="never"/> 
</menu> 
+0

размещать свою информацию журнала –

+0

журнала Информация ПИК загружен «ошибка ПИК» в верхней части @ ShubhamShukla –

+0

посмотреть, если мой ответ разрешит вашу проблему –

ответ

0

Там может быть несколько причин NullPointException, попробуйте:

Возможно, вы используете тему, которая не поддерживает ActionBar. Пытаясь использовать эту тему: android:theme="@android:style/Theme.Holo.Light".

пытается поймать:

if (getSupportActionBar() != null) 
{ 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 
} 

Или попробуйте изменить id из app_bar в aap.java

+0

попробовал вы код, но он дает то же исключение Null указателя @ W4R10CK –

+0

попытайтесь изменить id app_bar в xml для app.java – W4R10CK

+0

Да, это сработало благодаря большому брату. –

0

метода findViewById возвращение нуля. Добавить идентификатор атрибут на панель инструментов

android:id="@+id/aap_bar 

Вы также используете неправильное пространство имен АПА

Используйте приложение

xmlns:app="http://schemas.android.com/apk/res-auto" 
+0

. Я попробовал код youre, теперь он переходит во вторую активность, но does'nt показывает изображение и настройки значков, которые являются [email protected] Shukla –

+0

используйте этот атрибут в вашем файле меню приложения: showAsAction = «всегда» –

Смежные вопросы