2013-02-07 12 views
6

पर सेट करें मेरे पास ExpandableListView है और मुझे एक निश्चित समूह (समूहपॉशन ज्ञात और हमेशा वही) सेट करने की आवश्यकता है, जो गैर-विस्तार योग्य हो और क्लिक करने पर बस एक नया Activity प्रारंभ करें। क्या ऐसा करने का कोई तरीका है?एंड्रॉइड एक्सपेंडेबल लिस्ट व्यू - कुछ समूह को गैर विस्तार योग्य

अद्यतन

मैं भी केवल एक ही समूह की जरूरत है एक समय में विस्तार किया जाना चाहिए, और कोशिश की निम्नलिखित (लेकिन यह ठीक से काम नहीं कर रहा है):

getExpandableListView().setOnGroupClickListener(
      new OnGroupClickListener() { 
       @Override 
       public boolean onGroupClick(ExpandableListView parent, 
         View v, int groupPosition, long id) { 
        if (groupPosition == 1) { 
         Toast.makeText(getApplicationContext(), "TEST", 
           Toast.LENGTH_SHORT).show(); 
        } else if (groupPosition != lastExpandedGroupPosition) { 
         getExpandableListView().collapseGroup(
           lastExpandedGroupPosition); 
        } else 
         getExpandableListView().expandGroup(groupPosition); 
        lastExpandedGroupPosition = groupPosition; 

        return true; 
       } 
      }); 

उत्तर

17

इस चाल करना होगा - समूह आप विशेष रूप से हैंडल करना चाहते हैं के लिए onGroupClick में जाँच के लिए सही वापसी यह, झूठी वापसी के लिए किसी भी आप चाहते हैं डिफ़ॉल्ट क्रिया द्वारा नियंत्रित किया जा करने के लिए (विस्तृत/संक्षिप्त करें।)

mExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
     public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
      if(groupPosition == 2) { 
       Toast.makeText(mContext, "Group 2 clicked", Toast.LENGTH_LONG).show(); 
       return true; 
      } else 
       return false; 
     } 
    }); 
+0

समस्या को हल करने के लिए वास्तव में सरल तरीका है। धन्यवाद – Droidman

+0

यह काम किया। धन्यवाद :) – Bhupinder

+0

thanx, खुश कोडिंग :) –

2

आप ExpandableListView के लिए OnGroupClickListener उपयोग कर सकते हैं समूह क्लिक प्रतिबंधित करने के लिए।

अपडेट किया गया

private int previousGroupPosition = -1; 
private boolean isDoubleTap = false;  

expLv.setOnGroupClickListener(new OnGroupClickListener() 
{ 
    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) 
    { 
     if(previousGroupPosition != -1) 
      expLvTodoCategories.collapseGroup(previousGroupPosition); 

     if(previousGroupPosition != groupPosition || isDoubleTap) 
     { 
      isDoubleTap = false; 
      previousGroupPosition = groupPosition; 
      if(groupPosition == 1) 
      { 
       //Start Activity 
      } 
      else 
      { 
       expLv.expandGroup(groupPosition); 
      } 
     } 
     else 
      isDoubleTap = true; 

     return true; 
    } 
}); 

उपरोक्त कोड का प्रयास करें, यह उपयोगी हो सकता है ..

+0

मैं केवल एक ही समूह की जरूरत है एक समय में विस्तार किया जाना है। मैं इसे ऑन ग्रुपएक्सपैंड() विधि में करता हूं और आपके कोड का उपयोग करके इसे ठीक से काम करने से रोकता है .. मैंने अपना प्रश्न – Droidman

+0

अपडेट किया है, मैंने कोड अपडेट किया है, एक बार यह एक समूह में एक समूह का विस्तार करने के बाद भी जांच करेगा। – Santhosh

+0

upvote, आपकी मदद के लिए धन्यवाद – Droidman

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