Reputation: 73
This is my java file in which I declare textView with proper id.
@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;
}
This is the xml file in which I declare textview with proper id.
<?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>
I get this error
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
at
com.developers.a_g.androidquizapp.QusetionActivity.onPrepareOptionsMenu(QusetionActivity.java:358)
Upvotes: 0
Views: 511
Reputation: 13539
Yes, you could modify menu in onPrepareOptionsMenu
method, but you should create it firstly in onCreateOptionsMenu
.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.your_menu,menu);
return true;
}
Edited:
android:actionLayout="@layout/rectangle_text_view"
should be
app:actionLayout="@layout/rectangle_text_view"
Upvotes: 2
Reputation: 842
@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);
}
have you tried txt_wrong_answer=(TextView)constraintLayout.findViewById(R.id.txt_wrong_answer);
inside oncreateOptinsMenu
Upvotes: 0