【问题标题】:How to set EmptyView in ListActivity如何在 ListActivity 中设置 EmptyView
【发布时间】:2015-04-01 09:36:48
【问题描述】:

如果它是空的,我想在 ListActivity 中显示像“No Items Found”这样的空视图。我已经在网站上搜索了更多信息,并且只对 ListView 的 setEmptyView 方法提出了所有建议。你能指导一下 ListActivity 吗?

【问题讨论】:

  • 最多(并且不应该是适配器的一部分)...看看 ListFragment 源或使用它...

标签: android android-listview android-adapter


【解决方案1】:

我找到了如下解决方案

TextView emptyview = new TextView(this);
emptyview.setText("Empty List");
emptyview.setTextSize(25);

ListView currentlistview = getListView();

if(listadapter.size()==0)
((ViewGroup)currentlistview.getParent()).addView(emptyview);

我必须更多地寻找解决方案... ;)

【讨论】:

    【解决方案2】:

    您可以在 ListActivity 中使用getListView().setEmptyView(yourTextView); 方法。

    TextView emptyView = new TextView(mContext);
    emptyView.setText("Empty List");
    emptyView.setTextSize(25);
    emptyView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    
    getListView().setEmptyView(emptyView);
    

    编辑

    我刚刚发现 Cyril Mottier 写了一封 blog 关于这个。看来这正是您想要做的。

    【讨论】:

    • 请尝试设置文本视图的布局参数。很可能文本视图已添加到页面上,但它是不可见的。
    【解决方案3】:

    ListActivity添加一个空视图也根据source code

    1. 创建一个 xml 布局,例如 R.layout.list_activity,带有 ListViewTextView 以及标识符(必需!)android:id/listandroid:id/empty

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical" 
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:padding="8dp"
      >
      <ListView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:id="@android:id/list"
      />
      <TextView
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:id="@android:id/empty"
          android:text="@string/empty"
          android:gravity="center"
      />
      </LinearLayout>
      
    2. 设置此布局:

      @Override
      protected void onCreate( Bundle savedInstanceState ){
          super.onCreate( savedInstanceState );
          setContentView( R.layout.list_activity );
          //...
      }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多