Android ListView不显示数据库的内容
我正试图从我的数据库中读取一些信息,但当我运行我的应用程序时,它会显示为空白,我看不出哪里出了问题,或者我做错了什么 我已经更新了适配器函数,但仍然有一个空列表,每次添加新行时列表都会增加,但列表视图中没有数据。我也尝试过改变字体颜色,看看这是否是问题所在,但事实并非如此 显示数据库内容的片段:Android ListView不显示数据库的内容,android,Android,我正试图从我的数据库中读取一些信息,但当我运行我的应用程序时,它会显示为空白,我看不出哪里出了问题,或者我做错了什么 我已经更新了适配器函数,但仍然有一个空列表,每次添加新行时列表都会增加,但列表视图中没有数据。我也尝试过改变字体颜色,看看这是否是问题所在,但事实并非如此 显示数据库内容的片段: import android.app.Fragment; import android.database.Cursor; import android.os.Bundle; import android
import android.app.Fragment;
import android.database.Cursor;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import java.sql.SQLException;
import app.rory.pocket_chef.Adapters.DBAdapter;
import app.rory.pocket_chef.Adapters.Recipes_Adapter;
import app.rory.pocket_chef.Adapters.Shopping_List_Adapter;
import app.rory.slidemenu.R;
/**
* Created by Rory on 10/22/2014.
*/
public class shopping_List_Fragment extends Fragment {
private Shopping_List_Adapter shopping;
private DBAdapter db;
View rootview;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootview = inflater.inflate(R.layout.shopping_list_layout, container, false);
return rootview;
}
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//opeing the DBApater
db = new DBAdapter(getActivity());
try {
db.open();
} catch (SQLException e) {
e.printStackTrace();
}
//opening the shopping_list_adapter
shopping = new Shopping_List_Adapter(getActivity());
try {
shopping.open();
} catch (SQLException e) {
e.printStackTrace();
}
Cursor cursor = shopping.getAllShoppingList();
String[] columns = new String[] {Shopping_List_Adapter.NAME, Shopping_List_Adapter.QUANTITY};
int[] to = new int[] {R.id.shopping_list};
SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(getActivity(),R.layout.row2, cursor, columns, to, 0);
ListView shoppingList = (ListView)rootview.findViewById(R.id.shopping_list);
shoppingList.setAdapter(myCursorAdapter);
}
}
row2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/item_name"
android:paddingLeft="5dp"
android:textSize="17dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/item_quantity"
android:paddingLeft="5dp"
android:textSize="17dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
尝试完成链接更改中的步骤
int[] to = new int[] {R.id.shopping_list};
到
您必须将值放在行布局(Row2.xml)的文本视图中,而不是列表布局中。我一直在使用“Cursor Cursor=shopping.getAllShoppingList();”isntead,这是相同的还是我应该使用你的行?试试这个,你看到一个空的列表视图还是根本看不到它?我有一个空的列表视图,但是我知道数据库中有条目,如何从片段中调用数据库?我已经将片段中的getallShoppingList更改为一个简单的语句,就像您所做的一样,但仍然得到空列表
int[] to = new int[] {R.id.shopping_list};
int[] to = new int[] {R.id.item_name,R.id.item_quantity};