как решить, что панель действий не поддерживает настройку изменения значков и текста?

я не могу отладить эту проблему. т.е. когда я пытаюсь изменить текстовое имя и поместить значок для панели действий, он не поддерживает.. я имею в виду, что он выдает ошибку, например

02-06 11:43:39.964 9510-9510/com.example.brahmaiah.app1_menu E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: com.example.brahmaiah.app1_menu, PID: 9510
                                                                               java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.brahmaiah.app1_menu/com.example.brahmaiah.app1_menu.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setIcon(int)' on a null object reference
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
                                                                                   at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                   at android.os.Looper.loop(Looper.java:135)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5257)
                                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                                Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setIcon(int)' on a null object reference
                                                                                   at com.example.brahmaiah.app1_menu.MainActivity.onCreate(MainActivity.java:20)
                                                                                   at android.app.Activity.performCreate(Activity.java:5990)
                                                                                   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                                   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
                                                                                   at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                   at android.os.Looper.loop(Looper.java:135) 
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5257) 
                                                                                   at java.lang.reflect.Method.invoke(Native Method) 
                                                                                   at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

мой MainActivity.java

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_main);
    android.support.v7.app.ActionBar actionBar=getSupportActionBar();
    actionBar.setIcon(R.drawable.ic_image3);
    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(toolbar);

и у меня была поддержка библиотек v 7 и v 4. Я также пытался получить выполнение, подобное этому, в моей деятельности.e.actionBar.getSupportActionBar();. пожалуйста, помогите мне в этом, чтобы выйти из этого отладки. я думаю, что нет необходимости в manifest.xml..потому что у меня был правильный тег с minversion:7 и maxVersion17..заранее спасибо!! и тема приложения также нравится... light.noActionBar


person brahmy adigopula    schedule 06.02.2016    source источник


Ответы (2)


Сначала вам нужно установить Toolbar в качестве панели действий, а затем использовать getSupportActionBar()

Вам нужно изменить приведенный ниже код

android.support.v7.app.ActionBar actionBar=getSupportActionBar();
actionBar.setIcon(R.drawable.ic_image3);
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);

to

Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
android.support.v7.app.ActionBar actionBar=getSupportActionBar();
actionBar.setIcon(R.drawable.ic_image3);
person Raghunandan    schedule 06.02.2016
comment
большое спасибо, сэр.. это сработало через код.. но когда я пытаюсь изменить файл манифеста, такой как «активность» «android:icon=R.drawble.ic_image3», это не отражается на моей панели действий макета. но когда я я пытаюсь изменить его с помощью кода. Могу ли я узнать причину этого от вас, сэр? - person brahmy adigopula; 06.02.2016
comment
потому что у вас есть панель инструментов, действующая как панель действий. поэтому вам нужно установить значок для этого - person Raghunandan; 06.02.2016
comment
Обычно я бы этого не делал, но у моего вопроса очень мало просмотров, и я понятия не имею, как это сделать, поэтому не могли бы вы взглянуть на этот вопрос пожалуйста? Я был бы очень признателен - person Dan; 01.03.2016

используйте 1_

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;

ПОПРОБУЙТЕ этот код:

final ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeAsUpIndicator(R.drawable.back_dark);
    actionBar.setTitle(getResources().getString(R.string.title));
person Amit Vaghela    schedule 06.02.2016
comment
спасибо, сэр, но я расширяю только класс AppCompatActivity .. так что у меня уже были эти пакеты импорта. в любом случае спасибо за ваш любезный повтор ... - person brahmy adigopula; 06.02.2016
comment
да, это по умолчанию, когда вы используете AppCompatActivity, но я думаю, вам следует попробовать эту панель действий в вашем java-файле, это будет проще @brahmyadigopula - person Amit Vaghela; 06.02.2016