碎片类

public class My_Health extends Fragment {

DatabaseHandler db;

protected RecyclerView mRecyclerView;


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.home, container, false);

    RecyclerView recList = (RecyclerView) v.findViewById(R.id.cardlist_home);
    recList.setHasFixedSize(true);
    LinearLayoutManager llm = new LinearLayoutManager(getActivity());
    llm.setOrientation(LinearLayoutManager.VERTICAL);
    recList.setLayoutManager(llm);

    mRecyclerView = (RecyclerView) v.findViewById(R.id.cardlist_home);
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setAdapter(new HomeCardAdapter(db.getAllData(), R.layout.cardview_home));


    FloatingActionButton fab = (FloatingActionButton) v.findViewById(R.id.addrecordfab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getActivity(), AddRecord.class);
            startActivity(intent);
        }
    });
    return v;
}
}

数据库处理程序.java
public List<UserInfo> getAllData() {
    List<UserInfo> list = new ArrayList<>();
    String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;

    SQLiteDatabase db=this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    UserInfo bean = null;

    while (cursor.moveToNext()) {
        int index0 = cursor.getColumnIndex(KEY_DATE);
        int index1 = cursor.getColumnIndex(KEY_MOBILE_NO);
        int index2 = cursor.getColumnIndex(KEY_DIAGNOSIS);

        String date = cursor.getString(index0);
        String mobile_no = cursor.getString(index1);
        String heading = cursor.getString(index2);
        bean = new UserInfo(date,mobile_no,heading);
        list.add(bean);
    }
    return list;
}

}

当我运行应用程序时,它会停止
Logcat公司
java.lang.RuntimeException:无法对空对象启动活动组件信息{com.rashim12000.waytofreedom.swasthyatipot/com.rashim12000.waytofreedom.swasthyatipot.mainActivity}:java.lang.nullpointereException:尝试调用虚拟方法“java.util.list com.rashim12000.waytofreedom.swasthyatipot.helper.databasehandler.getAllData()”参考
在android.app.activitythread.performlaunchactivity上(activitythread.java:2325)
在android.app.activitythread.handleLaunchActivity上(activitythread.java:2390)
在android.app.activitythread.access$800(activitythread.java:151)
在android.app.activitythread$h.handleMessage上(activitythread.java:1303)
在android.os.handler.DispatchMessage上(handler.java:102)
在android.os.looper.loop上(looper.java:135)
在android.app.activitythread.main上(activitythread.java:5257)
在java.lang.reflect.method.invoke(本机方法)
在java.lang.reflect.method.invoke上(method.java:372)
在com.android.internal.os.zygenetinit$methodandargscaller.run上(zygenetinit.java:903)
在com.android.internal.os.zygenetinit.main上(zygenetinit.java:698)
原因:java.lang.nullPointerException:尝试对空对象引用调用虚拟方法“java.util.list com.rashim12000.wayToFreedom.swasthyatipot.helper.databasehandler.getAllData()”
在com.rashim12000.waytofreedom.swasthyatipot.fragment.my廑health.oncreateview(my廑health.java:55)
在android.support.v4.app.fragment.performCreateView上(fragment.java:1965)

最佳答案

你在打电话

db.getAllData()

排队
mRecyclerView.setAdapter(new HomeCardAdapter(db.getAllData(),R.layout.cardview_home));

但尚未初始化数据库

关于android - 在recyclerview中未从SQLIte检索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33806291/

10-11 22:19
查看更多