2011-01-19 40 views
10

मैं onCreateView कॉल के दौरान एक्सएमएल से लेआउट लोड कर सकते हैं, मैंने कोशिश की:लोड हो रहा है लेआउट

  • setLayoutResource (R.layout.test);
  • setWidgetLayoutResource (R.layout.test);

यह क्रैश हो गया है और मुझे नहीं पता कि एक विधि तर्क से व्यू समूह समूह को वापस कैसे करना है? मैं भी करने की कोशिश की:

  • देखें दृश्य = View.inflate (getContext(), R.layout.test, माता पिता), लेकिन यह के रूप में अच्छी तरह से काम नहीं किया।

मैं जड़ लेआउट widget_frame नामित लेकिन यह

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:padding="1dp" android:clickable="false" android:id="@+id/widget_frame"> 
<LinearLayout .... 

मदद नहीं था तुम मुझे बता सकते मैं गलत क्या कर रहा है या कुछ काम कर उदाहरण के लिए मुझे इशारा करते हैं।

LayoutInflater inflater = (LayoutInflater)getContext(). 
           getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.test, parent, false); 
+0

वाह! यह मेरे लिए भी काम किया! लेकिन दस्तावेज थोड़ा उलझन में था क्योंकि यह कहा गया था: "डिफ़ॉल्ट व्यवहार इस वरीयता के मुख्य लेआउट को बढ़ाने के लिए है (सेटलेआउट रिसोर्स (int) देखें।" मुझे बस यह नहीं मिला कि सेटलाउट संसाधन को कॉल करने का उद्देश्य क्या हो सकता है, जैसा कि हम स्पष्ट रूप से एक दृश्य और setLayoutResource रिटर्न शून्य वापस करने की आवश्यकता है। – Bilthon

+0

यदि आप 'setLayoutResource' के साथ लेआउट सेट करना चाहते हैं तो आपके व्यू की आईडी '" @android: id/widget_frame "' not '" @ + id/widget_frame "' 'होनी चाहिए। – GDanger

उत्तर

2

आप onCreateView उपयोग कर रहे हैं मैं आप या तो एक fragment उपयोग कर रहे हैं या एक View विस्तार लगता है: धन्यवाद

अद्यतन

नीचे कैसे लेआउट ऊपर से बढ़ाने के लिए पर एक वर्किंग समाधान है। वैसे भी इस जाँच: आप इस तरह कुछ करना चाहिए

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.your_layout, container); 
} 
0

आप एक लेआउट बढ़ा-चढ़ाकर रहे हैं:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.your_layout, null); 
} 
संबंधित मुद्दे