2010-02-04 11 views
24

, मेरे पास है:कैसे अपने मुख्य ध्यान में रखते हुए एक गतिविधि के साथ एक लेआउट दृश्य कनेक्ट करने के लिए

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include android:id="@+id/first" layout="@layout/first" /> 
    <include android:id="@+id/second" layout="@layout/playerdetailsview" /> 
</ViewFlipper> 

यह सही ढंग से पहली बार देखने को प्रदर्शित करता है लेकिन मैं इसे होना चाहते हैं:

public class PlayersActivity extends Activity { 
    ViewFlipper flipper; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.playercontainer); 
     flipper = (ViewFlipper) findViewById(R.id.flipper); 
    } 
} 
इस विचार से

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

+0

PlayersActivity पहले से ही अपने घटकों को नियंत्रित करने के लिए अपने जावा वर्ग है। क्लास फर्स्ट एक्टिविटी प्लेयर्स एक्टिविटी से अलग कैसे होगी? विभिन्न कक्षाओं में अपनी कार्यक्षमता को विभाजित करने के लिए – RickNotFred

+0

ताकि मैं उस विशिष्ट लेआउट का उपयोग फिर से व्यूफ्लिपर्स –

उत्तर

39

मान लें कि आपका नया xml फ़ाइल है:

  1. अपने res/layout निर्देशिका में फ़ाइल रखो।
  2. अपनी नई कक्षा में setContentView(R.layout.foo);
  3. अपने manifest file में अपनी नई कक्षा निर्दिष्ट करें।

declaring layout पर भी विषय देखें।

+1

में कर सकता हूं चरण 3 मानता है कि आपकी कक्षा एक गतिविधि है। – RickNotFred

+1

मैंने एप्लिकेशन गतिविधि में <गतिविधि एंड्रॉइड: नाम = "फर्स्ट एक्टिविटी"> जोड़ा (और अन्य चरणों का पालन किया) लेकिन यह अभी भी वर्ग को कॉल नहीं करता है, क्या मैं इसे मैनिफेस्ट में सही परिभाषित करता हूं? –

+0

आपको पूरी तरह से योग्य नाम निर्दिष्ट करने की आवश्यकता है। मान लिया जाये कि वर्ग अपने प्रकट रूप में एक ही पैकेज में रहता है, तो आप के रूप में निर्दिष्ट कर छोटा कर सकते हैं <गतिविधि एंड्रॉयड: "। FirstActivity" नाम => (ध्यान दें प्रमुख "।") – RickNotFred

6

1) एक एक्सएमएल फ़ाइल बनाएं (कहें)।
2) res/layout निर्देशिका में रखें।
3) संपादित करें और कुछ एंड्रॉइड लेआउट कोड डालें और इसे सेव करें। जैसे,

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

4) अपने नए गतिविधि कक्षा में

setContentView(R.layout.foo); 

डाल एक गतिविधि see this answer

मैं अपने xml फ़ाइल के साथ समस्या यह लगता है कि बनाने कि आप के लिए किसी भी लेआउट निर्दिष्ट नहीं हुई थी के लिए वह काम।

0

फर्स्टएक्टिविटी से प्रथम प्रतिक्रिया में नाम बदलें। लेआउट कैप्स को स्वीकार नहीं करता है, मुझे एक ही समस्या का सामना करना पड़ा था।

3

तो 2 लेआउट से जोड़ने के लिए मुश्किल नहीं बस करो:

@Override 
    public void onClick(View args0) { 
    setContentView(R.layout.aardelayout); 
} 
संबंधित मुद्दे

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