Android SQLIte中的数据未在回收器视图中检索
片段类Android SQLIte中的数据未在回收器视图中检索,android,sqlite,Android,Sqlite,片段类 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.
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;
}
}
DatabaseHandler.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;
}
}
public List getAllData(){
列表=新的ArrayList();
String selectQuery=“SELECT*FROM”+表格\联系人;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
UserInfo bean=null;
while(cursor.moveToNext()){
int index0=cursor.getColumnIndex(键日期);
int index1=cursor.getColumnIndex(键号);
int index2=cursor.getColumnIndex(键诊断);
字符串日期=cursor.getString(index0);
String mobile_no=cursor.getString(index1);
字符串标题=cursor.getString(index2);
bean=新用户信息(日期、手机号、标题);
添加(bean);
}
退货清单;
}
}
当我运行应用程序时,它会停止
logcat
java.lang.RuntimeException:无法启动活动组件信息{com.rashim12000.waytofreedom.swasthyatipot/com.rashim12000.waytofreedom.swasthyatipot.MainActivity}:java.lang.NullPointerException:尝试调用虚拟方法'java.util.List com.rashim1200.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.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.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));
但是没有初始化db回收器视图没有显示任何导致
项目的原因。您的回收器视图适配器
中的大小
必须返回0。谢谢,但现在回收器视图没有显示。有一个空白屏幕。@DolleTulsihaha是的,这就是情况,我已经弄清楚了。