我试图将“购物篮”图标设置为“添加到购物车”功能。当我运行应用程序时,出现此错误
尝试在空对象引用上调用虚拟方法'android.view.View android.widget.RelativeLayout.findViewById(int)'
在这里,我正在使用AppCompatActivity。
我的代码在这里:MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
RelativeLayout badgeLayout = (RelativeLayout) menu.findItem(R.id.badge).getActionView();
mCounter = (TextView) badgeLayout.findViewById(R.id.counter);
return true;
}
menu.xml:
<item
android:id="@+id/badge"
android:actionLayout="@layout/badge_layout"
android:title="Badges"
app:showAsAction="always">
</item>
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" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:clickable="true"
android:src="@drawable/ic_shopping_cart"/>
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:padding="8dp"
android:text="12"
android:textSize="10sp"
android:textColor="@color/colorPrimary" />
</RelativeLayout>
最后,找到购物车图标。取代这个
<item
android:id="@+id/badge"
android:actionLayout="@layout/badge_layout" //Check this LINE
android:title="Badges"
android:actionViewClass="android.widget.RelativeLayout"
app:showAsAction="always">
</item>
到
<item
android:id="@+id/badge"
app:actionLayout="@layout/badge_layout" //Check this LINE(Changes made here)
android:title="Badges"
android:actionViewClass="android.widget.RelativeLayout"
app:showAsAction="always">
</item>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句