显示java.lang.NullPointerException而在动作条图标添加文本 [英] java.lang.NullPointerException while adding text on actionbar icon
本文介绍了显示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屋!
查看全文