0

我有一个使用 setContentView 启动列表视图的活动,然后我有一个 If-Else 条件。在语句的If部分中,我使用 simpleAdapter 在列表视图中放置新布局以及来自游标的其他数据。在Else部分,我只想在标签中放一个句子以提供一些信息。我怎样才能做到这一点?我尝试了参数和文本视图,但它们不起作用。我试图放置另一个 setcontentView 但它也无法工作。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);

doMySearch() 是一个游标,它根据用户输入的关键字从数据库中提取数据。

public void onPostExecute() {
SimpleCursorAdapter adapter;
Int count = doMysearch().getCount;
If (count >= 1){
adapter=new SimpleCursorAdapter(this, R.layout.activity_results,
doMySearch(), new String[] {  
    DB.COL_NAME,
    DB.COL_CITY },
    new int[] { R.id.lblName, R.id.lblCity },
    0);

setListAdapter(adapter);
}
Else {
}

我只想要对 Else 部分说“未找到数据”的句子。谢谢。

4

2 回答 2

1

我不清楚你在问什么,但我们开始吧。

ListView 中有针对空列表的空视图设置,您必须在当前布局中添加另一个空视图。然后您将在代码中设置空视图布局,如下所示:

//add to your layout
<LinearLayout
        android:id="@+id/empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="There is no item" >
    </TextView>

</LinearLayout>


//set empty view
ListView listView = (ListView) container.findViewById(R.id.list);
LinearLayout emptyView = (LinearLayout) container.findViewById(R.id.empty);
listView.setEmptyView(emptyView);
于 2013-06-26T08:53:54.993 回答
0

据我了解,由于列表视图,标签没有显示,对吧?

编辑:好的,我想我现在明白了。为了简单起见,您可以隐藏您的 ListView ,然后使用已经包含您的错误字符串myList.setVisibility(View.GONE); 的预制标签可见。myLabel.setVisibility(View.VISIBLE)

制作 StringArray 的更难方法,例如在 strings.xml 中

<string-array name="error">
        <item>No results found</item>
</string-array>

然后,在你的 else-block 中,你可以这样做:

ListView lv = (ListView) findViewById(R.id.myList); 
String[] content = getResources().getStringArray(R.array.error); 
ArrayAdapter<String> typeList = new ArrayAdapter<String>(this, R.layout.simple_list_item_custom, content);
lv.setAdapter(typeList);
于 2013-06-26T08:51:19.367 回答