2016-03-21 30 views
3

Bu, Android programlaması hakkında bir sorudur. ListView'umdaki görünür satırların maksimum sayısını sınırlamam gerekiyor. onCreate yöntemdeListView için en fazla satır sayısını ayarlama

benim ListView için bir sonraki kod var:

listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayListOfElements)); 

yöntem onPostExecute ben sonraki adaptörü:

ArrayAdapter<String> adapter = (ArrayAdapter<String>) arrayListOfElements.getAdapter(); 
adapter.notifyDataSetChanged(); 

Yani için maksimum satır sayısını ayarlamak gerekir Bağdaştırıcım, ListView kaydırılabilir olup olmayacağı umurumda değil. Herhangi bir fikir? Bu durumda yardımcı olabilir BaseAdapter 'ın getCount() yöntemi kullanarak

cevap

0
@Override 
public int getCount() { 
    return YOUR_LIMIT; 
} 

. Sen (arrayListOfElements) sizin diziye bir sınırı belirlemek veya birlikte önce kesebilir

public int getCount() { 
    if (mList != null) { 
     return Math.min(mList.size(), YOU_MAX_VALUE); 
    } else { 
     return 0; 
    } 
} 
+0

Eğer 3 liste öğesi ve 20 limiti var, bu örnek 20'ye dönecekti. Ama geri dönmek için doğru sayı olmaz mıydı? Bu kodun nasıl yardımcı olabileceğini tam olarak anlayamıyorum ... –

+0

Math.min (list.size(), LIMIT) gibi bir şeye ihtiyacınız var: –

+0

if (list.size() Ozgur

4

Baz adaptörü yapın (mList liste görünümü gösterilecek öğe listeniz olan) adaptörü. truncate böyle olabilir:

if(arrayListOfElements.size()>MAXCOUNT) 
{ 
    for(int i=MAXCOUNT;i<arrayListOfElements.size();i++) 
    { 
     arrayListOfElements.remove(i); 
    } 
} 

Eğer bir kopyasını yapabilirsiniz orijinal diziyi değiştirmek istemiyorsanız: Eğer sen yerine o işleyebilir

ArrayList<String> copy=new ArrayList(arrayListOfElements); 
0

:

+0

Aradığım şey bu, teşekkürler! –

+0

Sorun değil! Bu cevap size yardımcı olursa, aynı sorunla birlikte diğeri için doğru olanı işaretleyin. – DonLeopardo

2

öğesini "arrayListOfElements" Örneğin

ekleyin: max ürün verir ki Sağlar 10

int maxItemsToDisplay; 
if(nodeList.getLength() > 10) 
    maxItemsToDisplay = 10; 
else 
    maxItemsToDisplay = nodeList.getLength(); 

for(int i = 0; i<maxItemsToDisplay; i++) 
{ 
    ... 
    arrayListOfElements.add(item(i)); 

} 
İlgili konular