Android 为什么我会得到这个;java.lang.NullPointerException:尝试调用虚拟方法'…';“在空对象引用上”;错误?
这是我的java文件,我在其中声明了具有正确id的textViewAndroid 为什么我会得到这个;java.lang.NullPointerException:尝试调用虚拟方法'…';“在空对象引用上”;错误?,android,Android,这是我的java文件,我在其中声明了具有正确id的textView @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item=menu.findItem(R.id.menu_wrong_answer); ConstraintLayout constraintLayout=(ConstraintLayout)item.getActionView();
@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;
}
<?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>
这是xml文件,我在其中声明了具有正确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;
}
<?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>
在
com.developers.a_g.androidquizapp.QusetionActivity.onPrepareOptionsMenu(QusetionActivity.java:358)
您是否尝试过txt\u-error\u-answer=(TextView)constraintLayout.findViewById(R.id.txt\u-error\u-answer);
OnCreateOptions菜单内部
您是否尝试过txt\u-error\u-answer=(TextView)constraintLayout.findViewById(R.id.txt\u-error\u-answer);
在onCreateOptions菜单中是的,您可以在onPrepareOptions菜单
方法中修改菜单,但您应该首先在onCreateOptions菜单中创建它
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.your_menu,menu);
return true;
}
编辑:
android:actionLayout="@layout/rectangle_text_view"
应该是
app:actionLayout="@layout/rectangle_text_view"
是的,您可以在onPrepareOptionsMenu
方法中修改菜单,但您应该首先在oncreateoptions菜单中创建它
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.your_menu,menu);
return true;
}
编辑:
android:actionLayout="@layout/rectangle_text_view"
应该是
app:actionLayout="@layout/rectangle_text_view"
你能发布菜单错误回答xml文件代码吗?你能发布菜单错误回答xml文件代码吗?我将代码粘贴到onCreateOption中,但没有使用iti我将代码粘贴到onCreateOption中,但没有使用它