sherlocklistfragment没有显示列表

时间:2013-05-28 19:31:20

标签: java android sqlite actionbarsherlock

嘿我试图用我的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);
}

1 个答案:

答案 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);

}