2012-03-23 20 views
24

मैं एक एंड्रॉइड ऐप पर काम कर रहा हूं जो ट्विटर के साथ अपनी खोज एपीआई का उपयोग कर बातचीत करता है। सब कुछ अच्छी तरह से काम करता है सिवाय इसके कि जब मैं एक सूची दृश्य का उपयोग करके परिणाम दिखाना चाहता हूं, तो केवल पहला परिणाम दिखाया गया है।एंड्रॉइड - ListView केवल पहला परिणाम दिखाएं

ArrayList<TwitterJSONResults> arrayList = new ArrayList<TwitterJSONResults>(data.getResults().size()); 
for (int i = 0; i < data.getResults().size(); i++) { 
    arrayList.add(data.getResults().get(i)); 
} 

ArrayAdapter<TwitterJSONResults> resultAdapter = new ArrayAdapter<TwitterJSONResults>(
       this, android.R.layout.simple_list_item_1, arrayList); 
listview.setAdapter(resultAdapter); 
resultAdapter.notifyDataSetChanged(); 

शो कैसे मैं एडाप्टर के लिए परिणाम जोड़ने और सूचीदृश्य को यह एडाप्टर सेट ऊपर कोड स्निपेट, क्या मैं गलत कर रहा हूँ?

+0

arrayList.size() के बारे में क्या sais logCat? – 207

+0

कि मेरे पास एन तत्व हैं (लगभग 15), यह भी उन्हें सही ढंग से प्रिंट करता है! – Rorchackh

+1

शायद समस्या नहीं है लेकिन आपको परिणामAdapter.notifyDataSetChanged() को कॉल करने की आवश्यकता नहीं है। एमएच अच्छी तरह से ... सूची में 15 आइटम होते हैं लेकिन केवल पहला दिखाया जाता है..और पहला भी सही ढंग से दिखाया गया है? क्या आप TwitterJSONResults कक्षा में toString() को ओवरराइड करते हैं? – 207

उत्तर

93

एक scrollview के अंदर ListView न रखें :)

+0

ठीक है, लेकिन अब मैं स्क्रॉलिंग खो गया है!मेरे विचार में एक लाइनरलाउट शामिल है जिसमें एक सूची दृश्य शामिल है। ListView को स्क्रॉल किया जा सकता है, लेकिन LinearLayout नहीं कर सकता है, इसलिए ListView से परे LinearLayout में आइटम को देखा नहीं जा सकता - उपयोगकर्ता की स्क्रीन के आकार के आधार पर। मुझे लगता है कि किसी लेआउट के भीतर ListView के बाद आइटम को कभी भी शामिल नहीं करना चाहिए! – Tom

+5

यदि आप अभी भी समाधान ढूंढ रहे हैं, तो http://nex-otaku-en.blogspot.com/2010/12/android-put-listview-in-scrollview.html ListView की ऊंचाई को ठीक करने का एक तरीका प्रदान करता है तो यह सभी वस्तुओं को प्रदर्शित करेगा। – dymk

+1

मेरा दिन बचाया !!! – ramesh

3

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

android:layout="wrap_content" 

इसलिए सामग्री मौजूद थी, यह सिर्फ यह नहीं दिखा रहा था। मेरे एक्सएमएल फ़ाइल से स्क्रॉलव्यू को हटाने के बाद, सब कुछ फाइल काम करता है। समर्थन के लिए 207 के

बिग धन्यवाद :)

33

इसकी नहीं एक जवाब। आप ScrollView में ListView का उपयोग कर सकते हैं। इस पढ़ें: http://kennethflynn.wordpress.com/2012/09/12/putting-android-listviews-in-scrollviews/

+2

यह समाधान सही है। धन्यवाद! – JesusS

+3

आपका स्वागत है !!! – iProgrammer

+0

धन्यवाद। मेरे पास एक स्लाइड आउट मेनू है जो स्क्रॉलव्यू के बिना ठीक से स्क्रॉल नहीं करेगा। यह समाधान दुर्लभ उदाहरण के लिए काम करता था जिसे मैं इससे नहीं बचा सकता था। – LoungeKatt

7

धन्यवाद करने के लिए @ 207 मैंने महसूस किया कि था मेरे मामले में समस्या है क्योंकि मैं NestedScrollView उपयोग कर रहा था, इसलिए मेरे लिए समाधान

android:fillViewport="true" 

इस्तेमाल किया गया था यहाँ मेरी कोड:

<android.support.v4.widget.NestedScrollView 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
    </android.support.v4.widget.NestedScrollView> 
+0

धन्यवाद यह मेरी मदद की! – pblead26

2

स्क्रॉलव्यू के अंदर सूचीदृश्य डालने पर मुझे आपके जैसे त्रुटि हुई है। और मेरे समाधान पीछा कर रहा है के रूप में:

1. जो गैर स्क्रॉल

public class NonScrollListView extends ListView { 

public NonScrollListView(Context context) { 
    super(context); 
} 
public NonScrollListView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 
public NonScrollListView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 
@Override 
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
       Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); 
     ViewGroup.LayoutParams params = getLayoutParams(); 
     params.height = getMeasuredHeight();  
} 

}

2. xml फ़ाइल के लिए कस्टम श्रेणी से ऊपर का प्रयोग करें एक कस्टम सूचीदृश्य बनाएं

<xx.xx.NonScrollListView 
     android:id="@+id/lv_nonscroll_list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </xx.xx.NonScrollListView> 

यह मेरे लिए सभी ओएस-संस्करण पर अच्छा काम करता है। आपके लिए सबसे अच्छा आशा है।

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