2012-01-16 11 views
8

मेरे पास एक कस्टम एडाप्टर से जुड़े आइटमों का एक ऐरेलिस्ट है। आइटम वर्णानुक्रम में हैं। मैं सूची सूची के प्रत्येक पंक्ति पर वर्णमाला से अलग पंक्तियों के साथ अपनी सूची दृश्य में अधिकतम चार आइटम रखना चाहता हूं।मैं सूची दृश्य में एक ही पंक्ति पर एकाधिक आइटम कैसे डालूं?

उदाहरण के लिए:

[हाय] [अस्पताल] [होटल] [हॉटस्पॉट]

[हाउस]

[असंभव] [असंभव]

तो एक से अधिक आइटम पर होगा ListView की एक ही पंक्ति।

क्या इसे पूरा करने के लिए कस्टम एडाप्टर क्लास की getView() विधि में स्थिति चर का उपयोग करने का कोई तरीका है?

यहाँ एक उदाहरण, गुणवत्ता के लिए खेद है: People Screen

छवि में, इस तरह के रूप में ArrayList समर्थन संग्रहीत करने, उन नामों alphabetized होते हैं।

+0

कृपया यह [आलेख] देखें (http://www.vogella.de/articles/AndroidListView/article.html) और [यह भी] (http://saigeethamn.blogspot.com/2010/04/ कस्टम-लिस्टव्यू-एंड्रॉइड-डेवलपर.html) इंटरनेट पर कई और उपलब्ध हैं बस खोज करें और आपको बेहतर और बेहतर मिलेगा। – MKJParekh

+0

अरे, क्या आपको – HoangQBH

उत्तर

5

आप CustomListView को लागू करने की है। अपनी ऑब्जेक्ट के ArrayAdapter की GetView विधि पर।

उदाहरण नीचे देखें:

See this link

यह वास्तव में आपकी मदद करने जा रहा है।

आनंद लें। :)

+1

उस उदाहरण में, लोगों के नाम शीर्ष से नीचे क्रम में प्रदर्शित होते हैं। यह एक अच्छा उदाहरण है और मैं वर्णानुक्रम के समूह के लिए एक रास्ता खोजने की कोशिश कर रहा हूं। उदाहरण के लिए, अल्बर्ट के अंतिम नाम वाले लोग एक पंक्ति (4 लोगों तक) पर होंगे। तो प्रति पंक्ति केवल एक बैकिंग आइटम नहीं, बल्कि चार तक। – benkdev

+0

क्या आप इसके किसी भी मोटे स्क्रीन शॉट को रखेंगे? –

+0

@benkdev: आपको सूची दृश्य में इसे प्रदर्शित करने से पहले डेटा को सॉर्ट करना होगा। डेटा को सॉर्ट करने के बाद आपको अपना इच्छित डेटा मिल जाएगा। –

1

हाँ, विधि getView() में एक पैरामीटर एक स्थिति है जो आपके सूचीदृश्य के लेआउट में 4 textviews वापस

public abstract View getView (int position, View convertView, ViewGroup parent) 
+0

ऐसा करने का कोई समाधान मिला है यदि बैकिंग स्टोर में कई आइटम हैं, और एडाप्टर से जुड़ा हुआ है, तो एडाप्टर का getView प्रत्येक पंक्ति के लिए आइटमों में से एक को वापस कर देगा, सही? मैं ListView की एक पंक्ति पर कई आइटम डालने की कोशिश कर रहा हूं और इस सूची में कहां हूं कि मैं कहां हूं। – benkdev

0

रखें आंकड़े देख सकते हैं भेजने के लिए इस्तेमाल किया जा सकता और getView निम्नलिखित की तरह उनके मान निर्धारित है() हैश मैप से विधि। आप सूचीदृश्य के चयनित आइटम की स्थिति प्राप्त करने के लिए getView के पहले पैरामीटर का उपयोग कर सकते हैं। यदि नहीं textview.setText के रूप में सेट मूल्यों से कुछ भी प्रिंट करना चाहते हैं ("")

private List<HashMap<String, String>> myData = new ArrayList<HashMap<String, String>>(); 

    public MyArrayAdapter(Context context, int textViewResourceId, List<HashMap<String, String>> objects) 
    { 
     super(context, textViewResourceId, objects); 
     try 
     { 
      context = getContext(); 
      myData = objects; 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    View v = convertView; 

    if(v == null) 
    { 
     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = inflater.inflate(R.layout.list_message_give_away_volunteers, null); 
    } 

    HashMap<String, String> hasValues = myData.get(position); 

    if(hasValues != null) 
    { 

     TextView txt_VolunteerName = (TextView)v.findViewById(R.id.txtVolunteerName); 
     txt_VolunteerName.setText(hasValues.get(DatabaseConstant.key_USER_NAME)); 

     TextView txt_SkillLevel = (TextView)v.findViewById(R.id.txtSkillLevel); 
     txt_SkillLevel.setText(hasValues.get(DatabaseConstant.key_SKILL_LEVEL)); 

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