16

अब खंड बनाने के लिए मैंने निम्नलिखित कोड किए हैं।प्रोग्रामिंग रूप से एक टुकड़े के लिए लेआउट कैसे बनाएं?

फ़ाइल नाम: fragment_a.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/frag_a" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

</LinearLayout> 

जावा में

public class FragA extends Fragment{ 
    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     view_a = inflater.inflate(R.layout.fragment_a, container, false); 

     return view_a; 
    } 



} 

अब मैं अगर वहाँ एक xml फ़ाइल बनाने और में कोड लिखने के बिना एक टुकड़ा दृश्य बनाने के लिए किसी भी तरह से है पता करने की जरूरत यह?

मैं जो कहने की कोशिश कर रहा हूं वह है कि मैं एक टुकड़े के लिए एक एक्सएमएल फ़ाइल नहीं बनाना चाहता हूं बल्कि मैं जावा कोड का उपयोग करके उस खंड के लिए दृश्य बनाना चाहता हूं।

क्या यह संभव है?

+0

संभव है, लेकिन उचित नहीं। हार्ड-कोडेड की बजाय xml का उपयोग करके डीबग करना आसान है। – princepiero

+0

जब आप एंड्रॉइड प्रोग्राम करते हैं तो आप xml और मूल रूप से एक्सएमएल और जावा क्यों अपराध में भागीदार नहीं बनना चाहते हैं? – princepiero

+0

मैं गतिशील रूप से एक टुकड़े के लिए दृश्य बनाने के बारे में सोच रहा था ताकि अगर मैं एक या दो पैरामीटर बदलूं तो मैं इसे दूसरे खंड के साथ उपयोग कर सकता हूं – user2729183

उत्तर

30

हां, ज़ाहिर है कि यह संभव है। मुद्रास्फीति रेखा को बस उदाहरण के लिए अपने कस्टम व्यू के साथ बदलें।

public class FragA extends Fragment{ 

    View view_a; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     view_a = new YourCustomView(); 

     return view_a; 
    } 
} 

या उस तरह:

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      view_a = new LinearLayout(getActivity()); 

      return view_a; 
     } 
    } 

या जोड़ने के अधिक दृश्य:

public class FragA extends Fragment{ 

     View view_a; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      LinearLayout ll = new LinearLayout(getActivity()); 
      ll.addView(new TextView(getActivity())); 

      view_a = ll; 

      return view_a; 
     } 
    } 
संबंधित मुद्दे