【发布时间】:2022-11-14 04:53:57
【问题描述】:
我有这个片段片段历史.xml由一个列表显示.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HistoryFragment">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_View"
/>
</LinearLayout>
我正在尝试使用以下函数将我的 sqlite 数据库中的数据提取到列表视图中HistoryFragment.java
public class HistoryFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_history, container, false);
ListView lw = view.findViewById(R.id.list_View);
MyDatabaseHelper myDB = new MyDatabaseHelper(getActivity());
List<ContactModel> data = myDB.fetchData();
ArrayAdapter<ContactModel> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, data);
lw.setAdapter(adapter);
return view;
}
}
这是 fetch 函数(在MyDatabaseHelper.java):
完整的数据库连接代码可以在这里找到:https://pastebin.com/SRdLeUT2。
public List<ContactModel> fetchData(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
List<ContactModel> data = new ArrayList<ContactModel>();
if(cursor.moveToFirst()){
do {
data.add(new ContactModel(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4),cursor.getString(5)));
}while(cursor.moveToNext());
}
cursor.close();
return data;
}
ContactModel.java
public class ContactModel {
private String id;
private String weight;
private String height;
private String age;
private String gender;
private String bmi;
public ContactModel(String id, String weight, String height, String age, String gender,String bmi) {
this.id = id;
this.weight = weight;
this.height = height;
this.age = age;
this.gender = gender;
this.bmi = bmi;
}
public String getID() {
return this.id;
}
public String getWeight() {
return this.weight;
}
public String getHeight() {
return this.height;
}
public String getAge() {
return this.age;
}
public String getGender() {
return this.gender;
}
public String getBmi() {
return this.bmi;
}
}
当我启动历史片段时,这是:output
当我尝试将光标打印到 logcat(来自 db 函数)时,它显示了相同的文本。
【问题讨论】: