1

나는 listview의 각 행에 이미지와 제목이 포함되어있는 Cusome ArrayAdapter를 사용하여 채우는 listview를 가지고 있습니다.사용자 정의 ArrayAdapter에 더 많은 항목 추가

내가 http://www.vogella.com/tutorials/AndroidListView/article.html 사용자 정의 ArrayAdapter와 생성처럼 사용하여 내 목록보기를 채우는 데이 튜토리얼을 따라 다음

여기

나는 MainActivity 내 목록에 어댑터를 연결 :

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

이미지의 각각 titles는리스트 뷰를 채우려는 ArrayList 객체입니다.

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; 
} 



} 

이 코드가 완벽하게 작동하고 데이터 (이미지와 제목)로 채워 목록보기 :

여기 내 ArrayAdapter와입니다.

[질문 :

는이 구현의 목록보기 (행 추가)를 추가 할 수 있습니까? (예 : newsAdapter.add() 메소드 사용).

이 가능하면 달성하는 방법은 무엇입니까?

답변

4

예, 예를 들어 addItem(String title, String image) 메서드를 사용자 지정 어댑터에 구현할 수 있습니다. 이 메서드는 전달 된 값을 titlesimages 목록에 추가합니다.

목록 어댑터의 내용을 변경 한 후에는 해당 어댑터에서 notifyDataSetChanged()을 호출하여 목록보기를 다시 그려야 뷰를 무효화해야합니다.

이 방법을 호출 한 다음 주 활동에 추가하여 항목을 목록에 추가하십시오. (예 : newsAdapter.addItem("some Title", imageString);

+0

감사합니다. 생명의 은인입니다. :) – Omar

+0

나는 당신의 지시를 따랐지만 작동하지 않습니다. Google이 최신 버전으로 변경 했습니까? – Kinimod

+0

afaik이 방법은 여전히 ​​유효하며 목록보기에 좋은 방법입니다. 하지만 요즘에는 특정 필요에 따라 recyclerview가 있습니다 - 경우에 따라 listviews를 대체 할 수 있습니다. – stamanuel