1

我有一個列表視圖,我使用cusome ArrayAdapter填充,列表視圖中的每一行都包含圖像和標題。添加更多的項目自定義ArrayAdapter

我跟着這個教程http://www.vogella.com/tutorials/AndroidListView/article.html 創建自定義arrayadapter並使用它像填充我的ListView如下:

在這裏,我將適配器連接到我的清單在MainActivity:

newsAdapter = new NewsAdapter(getActivity() , titles , images); 
listView.setAdapter(newsAdapter); 

每個圖像和標題是ArrayList對象,我想填充我的列表視圖。

這裏是我的ArrayAdapter:

public class NewsAdapter extends ArrayAdapter<String> { 

private final Context context; 
private final ArrayList<String> titles; 
private final ArrayList<String> images; 

public NewsAdapter(Context context,ArrayList<String> titles, ArrayList<String> images) { 
    super(context, R.layout.drawer_list_item, titles); 
    this.context = context; 
    this.titles = titles; 
    this.images = images; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.news_list_item, parent, false); 
    TextView title = (TextView) rowView.findViewById(R.id.news_title); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.news_thumble); 
    title.setText(titles.get(position)); 
    new DownloadImageTask(imageView).execute(images.get(position)); 
    return rowView; 
} 



} 

此代碼的工作完美,填入數據(圖片和標題)ListView控件。

問題:

是否有可能追加在此實現的列表視圖(添加更多行)? (例如使用newsAdapter.add()方法)。

如果這是可能的,如何實現這一目標?

回答

4

是的,你可以例如在你的自定義適配器中實現addItem(String title, String image)方法。 此方法會將傳遞的值添加到您的titlesimages列表中。

更改listadapter的內容後,您必須通過在該適配器中調用notifyDataSetChanged()來重新繪製listview來使視圖無效。

然後在您的主要活動中調用此方法將更多項添加到列表中。 (例如newsAdapter.addItem("some Title", imageString);

+0

非常感謝你,你是一個救生員。:) – Omar

+0

我遵循你的指示,但它不起作用。谷歌是否改變它在一個新的版本? – Kinimod

+0

afaik此方法仍然有效並且是列表視圖的一種好方法。但是現在回收者的觀點是 - 根據具體需求 - 在某些情況下可以很好地替代列表視圖。 – stamanuel

相關問題