这是我的Java文件,其中声明了具有正确ID的textView。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item=menu.findItem(R.id.menu_wrong_answer);
ConstraintLayout constraintLayout=(ConstraintLayout)item.getActionView();
txt_wrong_answer=(TextView)constraintLayout.findViewById(R.id.txt_wrong_answer);
txt_wrong_answer.setText(String.valueOf(0));
return true;
}
这是我在其中声明具有正确ID的textview的xml文件。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txt_wrong_answer"
android:text="1"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@android:color/white"
android:padding="10dp"
android:background="@drawable/text_view_bg"/>
</android.support.constraint.ConstraintLayout>
我收到此错误
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
在
com.developers.a_g.androidquizapp.QusetionActivity.onPrepareOptionsMenu(QusetionActivity.java:358)
答案 0 :(得分:2)
是的,您可以使用1
方法修改菜单,但首先应在onPrepareOptionsMenu
中创建菜单。
onCreateOptionsMenu
编辑:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.your_menu,menu);
return true;
}
应该是
android:actionLayout="@layout/rectangle_text_view"
答案 1 :(得分:0)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
MenuItem register = menu.findItem(R.id.menu_share);
super.onCreateOptionsMenu(menu);
}
您是否在oncreateOptinsMenu内尝试过txt_wrong_answer=(TextView)constraintLayout.findViewById(R.id.txt_wrong_answer);