嘿我试图用我的SQLite数据库中的数据创建一个ListView。现在我有一个名为tricks_list的布局,其中我显示了一个edittext字段和一个搜索按钮。在那些我有我的ListView,我想要放置trick_names。 代码运行但不是显示列表,而是只有一个旋转器永远旋转。 谁知道什么是错的? 这是我的xml:
<LinearLayout
android:id="@+id/ll_listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="80" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
这是java:
public class TrickListTab extends SherlockListFragment implements
ActionBar.TabListener {
private Fragment mFragment;
DBAdapter db = new DBAdapter(getActivity());
public ListView lv;
public SimpleCursorAdapter adapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().setContentView(R.layout.tricks_list);
}
public void getTricks(View view) {
try {
db.open();
} catch (SQLException e) {
e.printStackTrace();
}
Cursor tricks = db.getTrick_name();
adapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_1, tricks,
new String[] { "trick_name" },
new int[] { android.R.id.text1 }, 0);
lv = (ListView) view.findViewById(android.R.id.list);
lv.setAdapter(adapter);
db.close();
}
这是Cursor:
public Cursor getTrick_name() {
return db.rawQuery("SELECT trick_name FROM Tricks_list",
null);
}
答案 0 :(得分:0)
在onCreate()方法中(或之后)初始化DBAdapter。
DBAdapter db;
public ListView lv;
public SimpleCursorAdapter adapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db = new DBAdapter(getActivity());
getActivity().setContentView(R.layout.tricks_list);
}