【问题标题】:Attempt to invoke virtual method on a null object reference on Expandable list尝试在可扩展列表上的空对象引用上调用虚拟方法
【发布时间】:2021-02-05 02:38:37
【问题描述】:

这是我第一次在 StackOverflow 中提出问题,我想在这里向您展示我的代码:

SecondFragment 类

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_second, container, false);
    listView = (ExpandableListView) view.findViewById(R.id.expand_list);

    final List<String> listGroup = new ArrayList<>();
    listGroup.add("Menu 1");
    listGroup.add("Menu 2");
    listGroup.add("Menu 3");

    List<Makanan> listItem1 = new ArrayList<>();
    List<Makanan> listItem2 = new ArrayList<>();
    List<Makanan> listItem3 = new ArrayList<>();
    listItem1.add(new Makanan("Menu 1", "Ikan", "Telur dan Susu", "Panjang", "Bandung"));
    listItem2.add(new Makanan("Menu 2", "Ikan", "Telur dan Susu", "Panjang", "Bandung"));
    listItem3.add(new Makanan("Menu 3", "Ikan", "Telur dan Susu", "Panjang", "Bandung"));

    final HashMap<String, List<Makanan>> lstItemsGroup = new HashMap<>();
    this.mainPresenter.addList(listGroup.get(0),listItem1);
    this.mainPresenter.addList(listGroup.get(1),listItem2);
    this.mainPresenter.addList(listGroup.get(2),listItem3);

    final ListMakanan listMakanan = new ListMakanan(getActivity(),listGroup,lstItemsGroup);
    listView.setAdapter(listMakanan);

    FloatingActionButton fab = view.findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            listener.changePage(3);
        }
    });
    return view;
}

MainPresenter 类

public class MainPresenter {
protected final HashMap<String , List<Makanan>> makananList;
protected IMainActivity ui;

public MainPresenter(IMainActivity active){
    this.ui = active;
    this.makananList = new HashMap<String, List<Makanan>>();
}
public void addList(String title,  List<Makanan> listMakanan){
    makananList.put(title, listMakanan);
    this.ui.updateList(this.makananList);
    this.ui.resetAddForm();
}

}

问题是,为什么我不能在 MainPresenter 类中使用 addList() 方法添加/放置我的 hashMap?

你们能解决这个问题吗?

非常感谢。

(错误如标题所示)

【问题讨论】:

    标签: java android-studio android-fragments expandablelistview


    【解决方案1】:

    你不应该那样做。由makananList引起的空点异常是在addList的方法中初始化的。除非您在提供 MainPresenter 实例之前调用该方法。 如下所示: MainPresenter mp = new MainPresenter (active) mp.addList(parameters)

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2015-06-26
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多