【问题标题】:application null object reference应用程序空对象引用
【发布时间】:2018-03-28 18:31:14
【问题描述】:

上一个问题:
我可以知道为什么当我尝试启动 RecyclerView 活动从片段进行搜索时会出现此错误。

添加适配器后:

错误:在空对象引用上的 OwnerDAO.getOwner()'

片段代码:

  RecyclerView recyclerView;
  RecyclerView.LayoutManager layoutManager;
  SearchAdapter adapter;
  OwnerDAO mOwnerDao;

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.activity_search, container, false);
    recyclerView = (RecyclerView)v.findViewById(R.id.recycler_search);
    layoutManager = new LinearLayoutManager(this.getActivity());
    mOwnerDao = new OwnerDAO(getContext())
    adapter = new SearchAdapter(getContext(),mOwnerDao.getOwner());
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setHasFixedSize(true);
    recyclerView.setAdapter( adapter );

    return v;

   }

搜索适配器:

public SearchAdapter(Context context, List<Owner> owners) {
    this.context = context;
    this.owners = owners;
}

【问题讨论】:

  • 使用给定的代码,adapter 为空,因此在布局时,Adapter 实际上没有附加到RecyclerView
  • 我确实喜欢这个适配器 = new SearchAdapter(getContext(),mOwnerDao.getOwner());但似乎无法获取数据库对象
  • 不知道你说的“无法获取数据库对象”是什么意思。
  • 当我点击开始活动时,错误是(OwnerDAO.getOwner()' on a null object reference)
  • 看起来异常不会来自您问题中的代码。

标签: android android-studio android-fragments android-recyclerview


【解决方案1】:

setAdapter 之后设置layoutManager,如下所示:-

  recyclerView.setAdapter( adapter );
  recyclerView.setLayoutManager(layoutManager);

错误将被删除!!

【讨论】:

    猜你喜欢
    • 2018-01-29
    • 2015-05-21
    • 1970-01-01
    • 2015-08-30
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多