TextView一直出现在ListView

时间:2016-11-30 16:25:35

标签: android listview textview android-arrayadapter listadapter

我在以前的答案中一直在寻找ListViews,但我似乎无法找到解决问题的方法。主要是,尽管从SQLite数据库成功检索了一组数据,但是即使列表成功填充,TextView也会在没有数据的情况下保持可见状态。

我试图在历史记录活动中显示以前的用户输入,如下所示:

HistoryActivity.java

public class HistoryActivity extends ListActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

    SimpleCursorAdapter mAdapter;

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_history);

    // progress bar
    // Create a progress bar to display while the list loads
    ProgressBar progressBar = new ProgressBar(this);
    progressBar.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT));
    progressBar.setIndeterminate(true);
    getListView().setEmptyView(progressBar);

    // Must add the progress bar to the root of the layout
    ViewGroup root = (ViewGroup) findViewById(android.R.id.content);
    root.addView(progressBar);

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,
            array);
    setListAdapter(arrayAdapter);
}

activity_history.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">


    <ListView android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:dividerHeight="1dp"
        android:layout_weight="1"/>

    <TextView
        android:text="Nothing saved. Try to answer some questions now!"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="12dp"
        android:id="@android:id/empty"
    />

</RelativeLayout>

从之前的SO回答中,我确保.xml文件中的ID是正确的,根据我的理解,在扩展ListActivity时,您不需要使用.setEmptyView()。

我可能错过了一些基本的东西,所以非常感谢任何帮助。

提前致谢!

2 个答案:

答案 0 :(得分:0)

我没有正确理解你的问题......我得到的是当List填充项目时,文本视图仍然可见。

  • 我想你只是得到了TextView的参考资料

    TextView emptyView =(TextView)findViewById(R.id.empty);

  • 然后检查是否(list.size&gt; 0)

    使textView不可见

    emptyView.setVisibility(View.GONE);

  • 使其可见setVisibility(View.VISIBLE);

答案 1 :(得分:0)

如果您的列表不为空,则必须setVisibility="gone"到textView,如果您的列表为空,则显示该文件。