listview空视图从不显示

时间:2013-02-01 23:06:13

标签: android-listview

我正在使用SherlockListActivity和ListView。 当列表中没有项目时,我想显示no_data字符串。 我使用@android:id / empty跟随了几个例子,但它们对我不起作用。 “空”文本视图永远不可见。任何帮助表示赞赏。 这是我的layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ListView android:id="@android:id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<TextView android:id="@android:id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/no_data"/>
</LinearLayout>

这是我的列表视图填充在我的MainActivity Java文件

中的方式
private void fillData()
{     
    // Get cursor of name, bal, date for account list
    Cursor cursor = db.getCursor();
    startManagingCursor(cursor);

   // THE DESIRED COLUMNS TO BE BOUND
   String[] columns = new String[] { "accounts.name", "accounts.bal", "accounts.ot"};

   // THE XML DEFINED VIEWS WHICH THE DATA WILL BE BOUND TO
   int[] to = new int[] { R.id.tvName,R.id.tvBal, R.id.tvDate };

   // CREATE THE ADAPTER USING THE CURSOR POINTING TO THE DESIRED DATA AS WELL AS THE LAYOUT     INFORMATION
   SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.main_list_item, cursor, columns, to);

  // SET THIS ADAPTER AS YOUR LISTACTIVITY'S ADAPTER
  this.setListAdapter(mAdapter);

}

这是我在单独的Java类

中创建Cursor的方法
    // Getting All accounts
    public Cursor getCursor() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_ACCOUNTS, new String[] {
                    KEY_AID,     // Account ID Integer
                    KEY_NAME,    // Name of account 
                    KEY_BAL,     // Balance
                    KEY_ADATE,   // Occurrence time 

                    }, 
                    KEY_TYPE + "=?",
                    new String[] {"2"}, null, null, null);

            // return account list
            return cursor;

1 个答案:

答案 0 :(得分:0)

我需要在ListActivity的OnCreate方法中添加以下内容。

setContentView(R.layout.activity_main);

我通过回到记事本示例并将其与我的项目进行比较来找到这一点。 即使我忘了设置layout.xml,listview本身仍然有效。我相信这是因为默认的ListActivity布局是一个列表视图,其id为android:id / list。 现在正在使用正确的layout.xml,id为@android:id / empty的文本视图也正常工作。 抱歉,因为当我发布问题时,我没有包含MainActivity的OnCreate方法,而这就是问题所在。