显示java.lang.NullPointerException而在动作条图标添加文本 [英] java.lang.NullPointerException while adding text on actionbar icon

查看:166
本文介绍了显示java.lang.NullPointerException而在动作条图标添加文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 actionbar_badge_layout.xml 在布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="right" >

<!-- Menu Item Image -->
<ImageView
    android:layout_width="48dp"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:src="@mipmap/icon_back" />

<!-- Badge Count -->
<TextView
    android:id="@+id/actionbar_notifcation_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="99"
    android:textColor="@color/primary_dark_material_light" />

RES / menu_comment XML 我:

<item
    android:id="@+id/action_add"
    android:icon="@mipmap/ic_menu_add"
    android:actionLayout="@layout/actionbar_badge_layout"
    android:title="Add"
    app:showAsAction="always">
</item>

然后在我的活动我有 onCreateOptionsMenu()为:

Then inside my activity I have onCreateOptionsMenu() as:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_comment, menu);

    RelativeLayout badgeLayout = (RelativeLayout) menu.findItem(R.id.action_add).getActionView();
    TextView t = (TextView)badgeLayout.findViewById(R.id.actionbar_notifcation_textview); //here I am getting null pointer exception

    t.setText("12");


    return true;

}

不过,我得到空指针异常。 logcat的给我输出:

But I am getting NullPointer exception. Logcat gives me output as:

 java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.widget.RelativeLayout.findViewById(int)' on a null object reference
        at com.mypackage.activities.ShowCommentsActivity.onCreateOptionsMenu(ShowCommentsActivity.java:77)
        at android.app.Activity.onCreatePanelMenu(Activity.java:2820)
        at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:275)
        at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:276)
        at android.support.v7.app.ActionBarActivityDelegate$1.onCreatePanelMenu(ActionBarActivityDelegate.java:79)
        at android.support.v7.widget.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:49)
        at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:459)
        at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:69)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        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:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

什么是错的这个code。任何建议将AP preciated。谢谢advace

what is wrong in this code. Any suggestion will be appreciated. Thanks in advace

推荐答案

你在哪里关闭 RelativeLayout的

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="right" >

<!-- Menu Item Image -->
<ImageView
    android:layout_width="48dp"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:src="@mipmap/icon_back" />

<!-- Badge Count -->
<TextView
    android:id="@+id/actionbar_notifcation_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="99"
    android:textColor="@color/primary_dark_material_light" />

添加&LT; / RelativeLayout的&GT; XML年底文件

此外,尝试改变你的

  <item
    android:id="@+id/action_add"
    android:icon="@mipmap/ic_menu_add"
    android:actionLayout="@layout/actionbar_badge_layout"
    android:title="Add"
    app:showAsAction="always">
</item>

<item
    android:id="@+id/action_add"
    android:icon="@mipmap/ic_menu_add"
    app:actionLayout="@layout/actionbar_badge_layout"
    android:title="Add"
    app:showAsAction="always">
</item>

这篇关于显示java.lang.NullPointerException而在动作条图标添加文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆