2013-10-21 5 views
1

내 목록보기에서 피드 제목을 얻었지만 해당 목록보기의 SUBITEM에 설명, 이미지 및 링크를 가져 오려고합니다. 너 나 좀 도와 줄 수있어? 이것은 내가 무엇을 가지고 :내 목록보기에서 하위 항목 가져 오기

1) ListViewRSSItem

public class RSSItem { 

    private String title = null; 
    private String description = null; 
    private String link = null; 
    private String pubdate = null; 

    RSSItem(){} 

    void setTitle(String value) { 
     title = value; 
    } 

    void setDescription(String value) { 
     description = value; 
    } 
    void setLink(String value) { 
     link = value; 
    } 
    void setPubdate(String value) { 
     pubdate = value; 
    } 

    String getTitle() { 
     return title; 
    } 

    String getDescription() { 
     return description; 
    } 
    String getLink() { 
     return link; 
    } 
    String getPubdate() { 
     return pubdate; 
    } 

    public String toString() { 
     //TODO Auto-generated method stub 
     return title; 
    } 
} 

답변

2

그냥 사용자 정의 ArrayAdapter 사용)

ArrayAdapter<RSSItem> adapter; 
adapter = new ArrayAdapter<RSSItem>(
    this, 
    android.R.layout.simple_list_item_1, 
    myRssFeed.getList() 
); 
setListAdapter(adapter); 

2 MainActivity에. 수퍼 간단합니다 :

1) 정의 ArrayAdapter을 정의하십시오. getView()의 본문을 채워 어댑터에 전달한 각 항목을 기반으로보기를 만듭니다.

public class YourArrayAdapter<YourDataObject> extends ArrayAdapter<T> { 

    public YourArrayAdapter(Context context) { 
     super(context, 0); // Pass in 0 because we will be overriding getView() 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // getView() gets called when this item becomes visible in the ListView 
     // All you have to do is build a view with your data object and return it. 
     YourDataObject yourDataObject = getItem(position); 
     YourView view = new YourView(yourDataObject); 

    } 
} 

2) 어댑터를 ListView에 전달하고 데이터를 추가하십시오.

YourArrayAdapter<RSSItem> adapter = new YourArrayAdapter<RSSItem>(this); 
adapter.addAll(myRssFeed.getList()); 
setListAdapter(adapter); 

여기에 실현하기 위해 중요한 것은 그 ListView에이 Adapter.getView()를 통해보기를 요청 실제 UI Views에 데이터의 Adapters 차례로 나열되어 있습니다. 이 경우 사용자 정의 ArrayAdapter을 작성하므로 리턴하는 View에 대한 모든 것을 제어합니다. 자체 레이아웃이있는 뷰를 반환 할 수 있으며 RSSItem에 포함 된 많은 다른 데이터를 포함하여 원하는 형식으로 표시 할 수 있습니다. 멋진 점은 ListView과 사용자 지정 ArrayAdapter을 사용하면 이러한보기를 만들거나 파괴하는 것에 대해 걱정할 필요가 없다는 것입니다. 따라서 ArrayAdapter.getView()에서 반환 한 항목에 비트 맵이 포함되어 있으면 메모리 부족에 대해 걱정할 필요가 없습니다.

+0

답변 주셔서 감사합니다. 그러나 목록보기의 항목 제목 (굵은 글씨 일기 있음)과 설명 및 기타 목록의 하위 항목보기를 원함을 의미했습니다. – Rick

+0

잘 모르겠지만이 코드는 너 그렇게 해. 'YourView' 생성자에서'YourDataObject'의 제목을 꺼내서 굵게 표시 할 수 있습니다. 그리고 설명의 스타일을 다르게 지정할 수 있습니다. 'getView()'에서 리턴 한 뷰는 임의의 수의 중첩 된 뷰를 포함 할 수 있으며,이 뷰에 대한 레이아웃을 부 풀리거나 데이터 객체의 값을 뷰에 스틱 (stick) 할 수도 있습니다. –

+0

실례 합니다만 성가시다.하지만 나는 이해할 수 없다. 설명을받는 예를 들어 주시겠습니까? 결과가 없습니다. – Rick

관련 문제