2011-09-13 14 views
5

मैं तीन सूची दृश्य, अर्थात् 2 विस्तार योग्य और एक सूची दृश्य है, जो विभिन्न टैब में हैं के लिए खाली दृश्य सेट करने के कोशिश कर रहा हूँ है - खाली दृश्य प्रकट नहीं होता है। कि कोड टुकड़ा के साथ एक ही:ListView/ExpandableListView setEmptyView() कोई प्रभाव नहीं

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

यूपीडी: जब मैंने विशिष्ट @android: id/blank का उपयोग करके खाली टेक्स्ट व्यू जोड़ने की कोशिश की, तो यह केवल सूची दृश्य के लिए काम करता था, लेकिन विस्तारणीय दृश्यों के लिए नहीं। – 87element

उत्तर

6

समस्या मेरे गतिविधि के लिए एक और सामग्री दृश्य के रूप में खाली दृश्य जोड़कर हल किया गया था इस तरह से किया गया:

गतिविधि_माइन। एक्सएमएल

<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') गतिविधि से जुड़ा होना चाहिए सामग्री दृश्य के रूप में, यह उन्हें 'setContentView' द्वारा उपयोग की जाने वाली लेआउट xml फ़ाइल में डालकर भी हासिल किया जा सकता है, इसलिए कोई मुद्रास्फीति नहीं। अगर उनके पास उपरोक्त आईडी हैं तो 'setEmptyView' को कॉल करने की कोई आवश्यकता नहीं है: http://stackoverflow.com/a/2767974/253468 देखें। उन्हें एक ही फाइल में रखने का लाभ यह है कि आप यह कहां अनुकूलित कर सकते हैं कि यह कहां दिखाता है और कैसे, दोनों को 'फ्रेमलेआउट' में लपेटना सबसे आसान है। – TWiStErRob

+1

'setEmptyView' को छोड़ना 'सूची गतिविधि' में केवल संभव है। – 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> 
संबंधित मुद्दे