当我尝试通过可扩展列表菜单项上的单击方法关闭导航抽屉时遇到问题。
这是导航抽屉的可扩展列表视图菜单的方法,其中菜单标题被绑定并且在子菜单项上单击 new MainActivity().closeDrawer() 被调用并引发错误。
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final String childData = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this.mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_submenu, null);
}
String[] str = childData.split("@");
final TextView txtListChildTitle = convertView.findViewById(R.id.submenu);
txtListChildTitle.setText(str[0]);
txtListChildTitle.setTag(str[1]);
txtListChildTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new MainActivity().closeDrawer();
String tag = txtListChildTitle.getTag().toString();
Intent i2 = new Intent(mContext, AllSubCategory.class);
i2.putExtra("ID", tag);
mContext.startActivity(i2);
}
});
return convertView;
}
这是错误
2019-09-20 11:53:27.037 7717-7717/com.techabilit.readerchoice E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.techabilit.readerchoice, PID: 7717
java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.drawerlayout.widget.DrawerLayout.closeDrawer(int)' on a null object reference
at com.techabilit.readerchoice.Activities.MainActivity.closeDrawer(MainActivity.java:821)
这是 MainActivity.java:821 的关闭抽屉方法
public void closeDrawer() {
drawer.closeDrawer(GravityCompat.START);
}
请通过导航菜单子项的 onClick 帮助我关闭抽屉。