2011-09-13 1 views
5

を持っていません:リストビュー/ ExpandableListView setEmptyViewは()私は別のタブにある3つのリストビュー、すなわち2拡張と1つのリストビュー用の空のビューを設定しようとしている何の効果

LayoutInflater inflater = getLayoutInflater(); 
     View emptyView = inflater.inflate(R.layout.empty_view, null, false); 
... 
ExpListView1.setEmptyView(emptyView); 
ListView.setEmptyView(emptyView); 
ExpListView2.setEmptyView(emptyView); 

それは何の影響もしません - 空のビューは表示されません。そのコードピースと同じ:

View emptyView = inflater.inflate(R.layout.empty_view, null, false); 
View emptyRelativeLayout = (RelativeLayout) emptyView.findViewById(R.id.empty_view_layout); 
ExpListView1.setEmptyView(emptyRelativeLayout); 

empty_view_layout.xml:私が持っている

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    inflater = getLayoutInflater(); 
    emptyView = inflater.inflate(R.layout.empty_view, null); 
    addContentView(emptyView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
+1

UPD:特定の@android:id/emptyを使用して空のTextViewを追加しようとすると、リストビューでのみ機能し、拡張可能なビューでは機能しませんでした。 – 87element

答えて

6

このようにした:

activity_main。 XML

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <ExpandableListView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/expListView"> 

     </ExpandableListView> 


     <TextView 
      android:id="@+id/txtEmptyView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:gravity="center" 
      android:padding="10dp" 
      android:text="@string/no_game_available" 
      android:textAppearance="@android:style/TextAppearance.Medium" 
      android:textColor="@android:color/white" /> 

</RelativeLayout> 

MainActivity.java

ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expandableListView); 

TextView txtEmptyView = (TextView) view.findViewById(R.id.txtEmptyView); 

expandableListView.setEmptyView(txtEmptyView); 

が、これはあなたを助けることを願っています。

+2

私はこの全部の仕組みを理解しました。私は共有すると思っていました。リスト( 'android.R.id.list')と空のビュー(' android.R.id.empty')の両方がアクティビティこれはcontentViewとして、 'setContentView'で使われているレイアウトxmlファイルの中に入れておくことで実現できます。前述のIDを持っている場合は 'setEmptyView'を呼び出す必要はありません:http://stackoverflow.com/a/2767974/253468を参照してください。同じファイルにそれらがあることの利点は、どこに表示されるかをカスタマイズできることです。最も簡単な方法は、両方を 'FrameLayout'でラップすることです。 – TWiStErRob

+1

'setEmptyView'を省略すると' ListActivity'sでのみ可能です。 – TWiStErRob

0

:問題は私の活動に他のコンテンツビューとして空のビューを追加することで解決した

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/empty_view_layout"> 
    <TextView 
    style="@android:style/TextAppearance.Large" 
    android:id="@+id/empty_view_textview" 
    android:layout_width = "fill_parent" 
    android:layout_height="fill_parent" 
    android:text="@string/no_items_in_list" 
    android:layout_centerInParent="true"/> 
</RelativeLayout> 
関連する問題