2010-06-02 14 views
17

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

मैं एक आईफोन ऐप पोर्ट करने पर काम कर रहा हूं, जो विभिन्न वर्गों को देखने के लिए नेविगेशन नियंत्रकों और तालिका दृश्यों का उपयोग करता है: मूल रूप से, कोई तालिका में एक सेल को छूता है, जो किसी अन्य तालिका में ड्रिल करता है। जब वे उस तालिका पर एक सेल को छूते हैं तो यह एक वेबदृश्य पर ड्रिल करता है जो जानकारी प्रदर्शित करता है।

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

उत्तर

26

तो जब आप ड्रिल डाउन कहते हैं तो एक आईफोन पर मुझे लगता है कि आपका मतलब है कि जब कोई उपयोगकर्ता सूची पंक्ति पर छूता है और यह दाईं ओर से एक नया दृश्य स्लाइड करता है, तो ज्यादातर समय इसमें एनएवी बार होता है उपयोगकर्ता को वापस जाने का विकल्प देने के लिए शीर्ष?

जिस तरह से एंड्रॉइड हैंडल करता है यह एक नई गतिविधि शुरू करके बस होता है। इसलिए जब आपकी सूची पर क्लिक किया जाता है तो आपकी 'पुस्तकें' सूची निष्क्रियता होगी, तो आप एक नए इरादे को परिभाषित करेंगे जो आपके 'अध्याय' सूची सक्रियता आदि को शुरू करता है। आईफोन के शीर्ष पर एनएवी बार एंड्रॉइड में मानक यूआई नहीं है क्योंकि अधिकांश लोग पूर्वावलोकन स्क्रीन पर वापस आने के तरीके के रूप में समर्पित 'बैक' कुंजी देखते हैं।

इस तरह आप एक आशय मामले में आप यह पहले नहीं देखा है शुरू:

Intent chaptersIntent = new Intent(this, Chapters.class); 
this.startActivity(chaptersIntent); 

इस लेख के लायक है एक त्वरित माध्यम से पढ़ने के रूप में यह क्रियाएँ पूरी तरह से बताते हैं

http://d.android.com/guide/topics/fundamentals.html

TableView के एंड्रॉइड संस्करण पर भी एक नज़र डालें - ListView:

http://d.android.com/reference/android/widget/ListView.html

और ListActivity:

http://d.android.com/reference/android/app/ListActivity.html


संपादित :: नमूना कोड मैं इसे इस

public class Books extends ListActivity { 

private String[] mBooks = new String[]{ "Book1", "Book2", "Book3", "Book4" }; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ArrayAdapter<String> booksAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, 
      android.R.id.text1, 
      mBooks); 

    this.setListAdapter(booksAdapter); 

} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    Intent mViewChaptersIntent = new Intent(this, Chapters.class); 
    mViewChaptersIntent.putExtra("BookName", mBooks[position]); 
    startActivity(mViewChaptersIntent); 
} 

} 

की तरह कुछ करना होगा तो तुम एक के रूप में इस पुस्तक की आईडी के माध्यम से पारित इरादे के लिए अतिरिक्त तो अपने अध्याय गतिविधि में आप उस अतिरिक्त तरीके को प्राप्त करते हैं:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Bundle extras = getIntent().getExtras(); 
    if(extras != null) { 
     String bookId = extras.getString("BookName"); 
    } 
} 
अंत में

सुनिश्चित करें कि सभी नई गतिविधियों अपनी AndroidManifest.xml फ़ाइल में जोड़ रहे हैं बनाने:

<activity android:name=".YourClassName" 
    android:label="@string/activity_name" 
    > 
</activity> 

आशा है कि

+0

मुझे लगता है कि यह वही हो सकता है जो मैं ढूंढ रहा हूं। मुझे पूरा यकीन नहीं है कि मैं इसे समझता हूं, लेकिन यह आशाजनक लगता है। मेरे पास टेबल पंक्तियों के लिए काम कर रहा है, और मुझे गतिविधि.सेटकंटेंट व्यू का उपयोग करके दृश्यों को बदलना है, लेकिन यह सुनिश्चित नहीं है कि इसे आसानी से कैसे सेट किया जाए (बैक बटन प्रोग्राम से बाहर निकलता है, मुझे लगता है क्योंकि मेरे प्रोजेक्ट में केवल एक गतिविधि है)। यह अपने उदाहरण से की तरह दिखता है मैं प्रत्येक अनुभाग (Books.class, Chapters.class, आदि) के लिए एक और वर्ग बनाने के लिए हालांकि होगा, मैं इस मिल: निर्माता आशय (नई View.OnClickListener() { }, कक्षा <सूचनात्मक>) अपरिभाषित – AndyD273

+0

इरादा जानकारी है INTent = नया इरादा (यह, सूचनात्मक.क्लास); प्रारंभ गतिविधि (सूचनात्मक इंटेंट); – AndyD273

+0

ऊपर कुछ नमूना कोड जोड़ा गया है, उम्मीद है कि यह स्पष्ट है – m6tt

2

एंड्रॉइड ui बनाया गया प्राथमिक तरीका xml का उपयोग कर रहा है। मुझे बिल्कुल यकीन नहीं है कि जब आप ड्रिल डाउन करते हैं तो आपका क्या मतलब है, लेकिन यदि आप चाहते हैं कि इसे दृश्यों को बदलना आसान हो, तो xml तत्वों का एक सेट दृश्यमान और दूसरा सेट न हो। अधिक सहायता के लिए डेवलपर पेज देखें।

http://developer.android.com/guide/topics/ui/index.html

यह भी एक बहुत अच्छा शुरुआत संसाधन है उल्लेख करने के लिए भूल। http://mobiforge.com/designing/story/understanding-user-interface-android-part-1-layouts

+0

में मदद करता है नीचे ड्रिल एक नेविगेशन नियंत्रक के एक अन्य स्तर पर जाने के लिए एक एप्पल शब्द है (पुस्तक -> अध्याय-> श्लोक: जो पुस्तक आप चाहते हैं उसे स्पर्श करें और अध्यायों की एक सूची प्रदर्शित करें। स्पर्श करें कि आप कौन सा अध्याय चाहते हैं और आप एक गहरे स्तर पर जाते हैं। पद से अध्याय तक जाने के लिए, आप नेविगेशन नियंत्रक पर बैक बटन पर क्लिक करें और यह याद रखता है कि आप कहां थे।) मुझे इसे करने के XML तरीके से उपयोग करना होगा। xCode में आपको प्रत्येक सेक्शन के लिए एक अलग दृश्य नियंत्रक होना चाहिए, और सामग्री को दिखाना/छुपा देना अधिक कठिन है। – AndyD273

1

जैसा कि पहले से ही लेआउट करने के XML way को इंगित किया गया है सबसे पसंदीदा है।

मूल रूप से, किसी तालिका, जो एक और टेबल के नीचे अभ्यास में एक सेल को छू लेती है। जब वे उस तालिका पर एक सेल स्पर्श करते हैं तो यह वेबव्यू पर ड्रिल करता है जो जानकारी प्रदर्शित करता है।

मैं क्या नीचे अवधि अभ्यास से समझ में आ से, इस वाट हो सकता है आप

http://developer.android.com/guide/topics/ui/ui-events.html

जरूरत आधिकारिक डॉक्स

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

+0

तो एक्सएमएल तरीके से, ऐसा करने का तरीका स्पर्श ईवेंट को पकड़ना है जब उपयोगकर्ता पुस्तक का चयन करता है, अध्यायों के साथ तालिका को फिर से लोड करता है, और जब उपयोगकर्ता अध्याय का चयन करता है तो तालिका को छुपाता है और टेक्स्ट को प्रदर्शित करने के लिए वेबव्यू दिखाता है , सब एक लेआउट में? – AndyD273

+0

अध्याय प्रदर्शित करने के लिए आप किताबों के लिए टेबल लेआउट का पुन: उपयोग कर सकते हैं। वेबव्यू को पठनीयता के लिए एक अलग लेआउट का उपयोग करना चाहिए। – primpap

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