यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में एक बहुस्तरीय सूची कैसे बना सकता हूं।
चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।
चरण 3 - निम्न कोड को src/MainActivity.java
में जोड़ेंimport androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.Toast;import java. util.ArrayList;import java.util.HashMap;import java.util.List;सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है {ExpandableListView ExpandableListView; एक्सपेंडेबल लिस्ट एडॉप्टर सूची <स्ट्रिंग> विस्तार योग्य सूची शीर्षक; हैश मैप <स्ट्रिंग, सूची <स्ट्रिंग>> विस्तार योग्य सूची विवरण; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); विस्तार योग्य लिस्ट व्यू =findViewById (R.id.expendableList); एक्सपेंडेबल लिस्ट डीटेल =एक्सपेंडेबल लिस्टडेटा। गेटडाटा (); ExpandableListTitle =नया ArrayList<>(expandableListDetail.keySet ()); एक्सपेंडेबल लिस्ट एडॉप्टर =नया कस्टम एक्सपेंडेबल लिस्ट एडेप्टर (यह, एक्सपेंडेबल लिस्टटाइटल, एक्सपेंडेबल लिस्ट डीटेल); एक्सपेंडेबल लिस्ट व्यू.सेट एडेप्टर (एक्सपेंडेबल लिस्ट एडेप्टर); ExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {@Override public void onGroupExpand(int groupPosition) { Toast.makeText(getApplicationContext(), ExtendableListTitle.get(groupPosition) + "सूची का विस्तार किया।"; } }); ExpandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {@Override public void onGroupCollapse(int groupPosition) { Toast.makeText(getApplicationContext(), ExpandableListTitle.get(groupPosition) + "सूची संक्षिप्त हो गई।", Toast.LENGTH_LENGTH_LENGTH.LENGTH.LENGTH; } }); ExpandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {@Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int ChildPosition, long id) { Toast.makeText(getApplicationContext(), ExpandableListTitle.get + "(group)> "+ ExpandableListDetail.get(expandableListTitle.get(groupPosition)).get(childPosition), Toast.LENGTH_SHORT)। शो (); झूठी वापसी;}}); }}पूर्व>चरण 4 - एक जावा क्लास (ExpandableListData.java) और निम्न कोड बनाएं
आयात करें विस्तार योग्य सूची विवरण =नया हैश मैप <> (); सूची <स्ट्रिंग> myFavCricketPlayers =नई ArrayList<>(); myFavCricketPlayers.add("MS.Dhoni"); myFavCricketPlayers.add ("सहवाग"); myFavCricketPlayers.add ("शेन वॉटसन"); myFavCricketPlayers.add ("रिकी पोंटिंग"); myFavCricketPlayers.add ("शाहिद अफरीदी"); सूची <स्ट्रिंग> myFavFootballPlayers =नया ArrayList <स्ट्रिंग> (); myFavFootballPlayers.add ("क्रिस्टियानो रोनाल्डो"); myFavFootballPlayers.add ("लियोनेल मेस्सी"); myFavFootballPlayers.add ("गैरेथ बेल"); myFavFootballPlayers.add ("नेमार जेआर"); myFavFootballPlayers.add ("डेविड डी गे"); सूची <स्ट्रिंग> myFavTennisPlayers =नया ऐरेलिस्ट <स्ट्रिंग> (); myFavTennisPlayers.add("रोजर फेडरर"); myFavTennisPlayers.add("राफेल नडाल"); myFavTennisPlayers.add ("एंडी मरे"); myFavTennisPlayers.add ("नोवाक जोकोविच"); myFavTennisPlayers.add("सानिया मिर्जा"); ExpandableListDetail.put ("क्रिकेट खिलाड़ी", myFavCricketPlayers); ExpandableListDetail.put ("फुटबॉल खिलाड़ी", myFavFootballPlayers); ExpandableListDetail.put ("टेनिस खिलाड़ी", myFavTennisPlayers); विस्तार योग्य सूची विवरण लौटाएं; }}पूर्व>चरण 5 - एक जावा क्लास (CustomExpandableListAdapter.java) और निम्न कोड बनाएं
<पूर्व>पैकेज app.com.sample;import android.content.Context;import android.graphics.Typeface;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget. BaseExpandableListAdapter;import android.widget.TextView;import java.util.HashMap;import java.util.List;import java.util.Objects;class CustomExpandableListAdapter, BaseExpandableListAdapter {निजी संदर्भ संदर्भ; निजी सूची <स्ट्रिंग> विस्तार योग्य सूची शीर्षक; निजी हैश मैप <स्ट्रिंग, सूची <स्ट्रिंग>> विस्तार योग्य सूची विवरण; CustomExpandableListAdapter (संदर्भ संदर्भ, सूची <स्ट्रिंग> विस्तार योग्य सूची शीर्षक, हैश मैप <स्ट्रिंग, सूची <स्ट्रिंग>> विस्तार योग्य सूची विवरण) {this.context =संदर्भ; this.expandableListTitle =ExpandableListTitle; this.expandableListDetail =ExpandableListDetail; } @ ओवरराइड पब्लिक ऑब्जेक्ट getChild (int listPosition, int ExtendedListPosition) {ऑब्जेक्ट्स लौटाएं। requireNonNull (this.expandableListDetail.get (यह। } @ ओवरराइड पब्लिक लॉन्ग getChildId(int listPosition, int ExtendedListPosition) {रिटर्न विस्तारित लिस्टपोजिशन; } @ ओवरराइड पब्लिक व्यू getChildView(int listPosition, final int ExtendedListPosition, boolean isLastChild, View ConvertView, ViewGroup पैरेंट) { फाइनल स्ट्रिंग एक्सपैंडेड लिस्टटेक्स्ट =(स्ट्रिंग) गेटचाइल्ड (लिस्टपोजिशन, एक्सपैंड लिस्टपोजिशन); अगर (कन्वर्ट व्यू ==नल) {लेआउटइन्फ्लेटर लेआउटइन्फ्लेटर =(लेआउटइन्फ्लेटर) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ConvertView =Objects.requireNonNull(layoutInflater).inflate(R.layout.list_row, null); } TextView textView =ConvertView.findViewById(R.id.listTitle); textView.setText (विस्तारित लिस्टटेक्स्ट); वापसी कन्वर्ट व्यू; } @Override public int getChildrenCount(int listPosition) { इसे लौटाएं। } @Override सार्वजनिक वस्तु getGroup(int listPosition) { इसे लौटाएं.expandableListTitle.get(listPosition); } @ ओवरराइड पब्लिक इंट गेटग्रुपकाउंट () { इसे लौटाएं। एक्सपेंडेबल लिस्टटाइटल.साइज (); } @ ओवरराइड पब्लिक लॉन्ग getGroupId(int listPosition) {रिटर्न लिस्ट पोजीशन; } @ ओवरराइड पब्लिक व्यू getGroupView (int listPosition, boolean isExpanded, View ConvertView, ViewGroup पैरेंट) {स्ट्रिंग लिस्टटाइटल =(स्ट्रिंग) गेटग्रुप (लिस्टपोजिशन); अगर (कन्वर्ट व्यू ==नल) {लेआउटइन्फ्लेटर लेआउटइन्फ्लेटर =(लेआउटइन्फ्लेटर) this.context. getSystemService (संदर्भ.LAYOUT_INFLATER_SERVICE); ConvertView =Objects.requireNonNull(layoutInflater).inflate(R.layout.list_row, null); } TextView सूचीTitleTextView =ConvertView.findViewById(R.id.listTitle); listTitleTextView.setTypeface(null, Typeface.BOLD); listTitleTextView.setText(listTitle); वापसी कन्वर्ट व्यू; } @ ओवरराइड पब्लिक बूलियन hasStableIds() { रिटर्न फॉल्स; } @ ओवरराइड पब्लिक बूलियन isChildSelectable (int listPosition, int ExtendedListPosition) {रिटर्न ट्रू; }}पूर्व>चरण 6 - एक लेआउट संसाधन फ़ाइल (list_row.xml) बनाएं और निम्न कोड जोड़ें -
चरण 7 - निम्न कोड को androidManifest.xml में जोड़ें
<एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" /> आइए अपना एप्लिकेशन चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और टूलबार से रन आइकन पर क्लिक करें। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -