2012-02-26 10 views
16

मैं एक्सएमएल में एक टुकड़े के लेआउट को उसी तरह परिभाषित करने की कोशिश कर रहा हूं जिस तरह से मैंने अपने विचार के लेआउट को परिभाषित किया है।मैं एक्सएमएल से एक टुकड़े के लेआउट को कैसे परिभाषित कर सकता हूं?

क्या यह संभव है? मैंने कई चीजों की कोशिश की, लेकिन उनमें से कोई भी काम नहीं कर रहा है।

मेरे गतिविधि लेआउट के रूप में (main.xml) इस प्रकार है:,

<?xml version="1.0" encoding="utf-8"?> 
<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:name="full.lommeregner.Lommeregnerrv2Activity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/lommeregnerv2"> 
    </fragment> 

</ListView> 

अब के बाद से मैं कच्चे जावा कोड के माध्यम से लेआउट पैदा करने का एक बड़ा प्रशंसक नहीं हूँ, मैं अपने टुकड़ा को परिभाषित करने के रूप में (fragment_lommeregner इस प्रकार की कोशिश की .xml):

<fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:name="full.lommeregner.Lommeregnerrv2Activity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/lommeregnerv2"> 
     <!-- my content was located here (some textviews, buttons and so on). --> 
    </fragment> 

क्या मैं कुछ गलत कर रहा हूं? मैं एक्सएमएल के माध्यम से एक टुकड़े के लेआउट को कैसे परिभाषित कर सकता हूं?

उत्तर

15

एक टुकड़ा एक गतिविधि की तरह काम करता है, जिसमें आपको इसके साथ जाने के लिए जावा क्लास फ़ाइल की आवश्यकता होती है। तुम सिर्फ एक टुकड़ा लेआउट बनाने के द्वारा एक टुकड़ा नहीं बना सकते - आप अपने टुकड़ा के लिए एक वर्ग की जरूरत है:

  1. एक लेआउट एक्सएमएल और अपनी गतिविधि
  2. के लिए एक गतिविधि उपवर्ग बनाएँ लेआउट एक्सएमएल और के लिए एक टुकड़ा उपवर्ग अपना टुकड़ा
  3. टाई अपनी गतिविधि लेआउट एक्सएमएल में एक साथ दो (या FragmentTransaction का उपयोग कर यदि आप जावा कोड में करना चाहते हैं)

आपने पहले ऐसा नहीं, ऐसा किया तो, पढ़ा फिर से पढ़ें और सब कुछ हजम इस पृष्ठ पर: https://developer.android.com/guide/components/fragments.html

वहां बहुत कुछ है, लेकिन फ्रैगमेंट अब एंड्रॉइड ऐप्स का एक अनिवार्य हिस्सा हैं, इसलिए इसे पढ़ने की आवश्यकता है। अच्छी खबर यह है कि टुकड़ों की मूल बातें बहुत सरल हैं।

tools:layout="@layout/your_layout_xml" 

और अपने main.xml (या <fragment> टैग कंटेनर) में अपने माता पिता के कंटेनर में (इस मामले ListView में):

+1

वे 'सख्ती से जरूरी नहीं है, लेकिन वे कई मामलों में आपकी जिंदगी को आसान बना देंगे। – adamp

+0

ग्रहण उदाहरण जो वर्तमान में स्वत: जेनरेट किया गया है FragmentTransactions का उपयोग करता है मुझे लगता है ... दृश्य एक स्थिर खंड वर्ग द्वारा उत्पन्न होता है और एक कार्यात्मक कॉल से लौटाया जाता है। मैं वर्तमान में अपने स्वयं के टैब जोड़ने के तरीके पर काम कर रहा हूं। – anon58192932

+0

'Fragment' क्लास का एक उदाहरण निर्दिष्ट करता है कि कौन सी एक्सएमएल फ़ाइल में इसका लेआउट है? 'गतिविधि' में' setContentView (R.layout.my_activity_layout) 'है, जिसे 'ऑनक्रेट()' के दौरान बुलाया जा सकता है। क्या टुकड़ों के लिए एक एनालॉग है? – dinosaur

10

सीधे शब्दों में संपत्ति के रूप में अपने <fragment> टैग में जोड़ने

xmlns:tools="http://schemas.android.com/tools" 
संबंधित मुद्दे

 संबंधित मुद्दे