2011-03-04 4 views
0

나는 안드로이드 초보자이며 무료 IBM android RSS 튜토리얼을 기반으로하는 간단한 RSS 리더 애플리케이션을 구축했다. 해당 행의 범주가 특정 String과 같은 경우 각 행의 배경색을 변경하고 싶습니다.내 RSS 리더기의 ListView 내용을 기반으로 한 행 색상

각 항목의 범주를 발견하고 해당 범주가 "News"와 같아야 if 문을 실행하는 다음 "for 루프"를 작성했습니다. 현재 피드에 뉴스 카테고리가 제공되는 즉시 전체 목록보기의 배경색이 변경됩니다.

초보자를 돕는 사람이 있습니까?

for(int i = 0; i < feed.getItemCount(); i++) 
{ 
    if (feed.getItem(i).getCategory().equals("News")) 
    { 
     ListView.setBackgroundColor(0x77ee0044); 
    } 
} 
+0

자세한 내용을 보려면이 자습서에 대한 링크를 포함시킬 수 있습니까? –

+0

안녕 Matthew, http://www.ibm.com/developerworks/xml/tutorials/x-androidrss/index.html – Mat

+0

개인 무효 UpdateDisplay() { TextView feedtitle = (TextView) findViewById (R.id.feedtitle) ; TextView feedpubdate = (TextView) findViewById (R.id.feedpubdate); ListView itemlist = (ListView) findViewById (R.id.itemlist); ArrayAdapter 어댑터 = 새 ArrayAdapter (this, android.R.layout.simple_list_item_1, feed.getAllItems()); itemlist.setAdapter (adapter); itemlist.setOnItemClickListener (this); itemlist.setSelection (0); \t \t return; – Mat

답변

0

어댑터의 getView() 방법으로이 작업을 수행해야합니다.

getView()에서보기를 반환하기 전에보기에서 setBackgroundColor()을 호출하거나 다른 setBackgroundFoo() 방법 중 하나를 사용할 수 있습니다.

편집이 - 코드를 부여, 당신이 당신의 어댑터를 만들 때, 시도 :

ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem>(
    this,android.R.layout.simple_list_item_1,feed.getAllItems(­)) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 
     if (getItem(position).getCategory().equals("News")) { 
      view.setBackgroundColor(0xffff0000); // red 
     } 
     return view; 
    } 
}; 

이 제대로 목록 항목 뷰의 배경을 조정 getView() 우선합니다.

+0

정말 고마워 Matthew, 나는 서클에서 시간을 보냈다. – Mat

+0

문제 없습니다. 나는 이것이 그러한 작은 코드로 행해질 수 있다는 것에 놀랐다. –

관련 문제