2011-08-12 3 views
0

그래서 메모장 튜토리얼 코드를 수정했습니다 : http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html.콘텐츠를 기준으로 목록보기에서 각 항목의 배경색을 설정하는 방법

기본적으로 콘텐츠를 기준으로 ListView 내의 다른 행에 대한 특정 레이아웃 스타일 (배경색)을 만드는 것으로하고 싶습니다. 예를 들어 제목의 텍스트가 "1"이므로 해당 행의 배경이 빨간색이됩니다. 또는 제목 텍스트가 "2"이면 해당 행 (또는 목록 항목)의 배경이 녹색이됩니다.

내가 이루고자하는 것은 데이터베이스의 행을 요약하고 각 행이 항목이 저장되는 범주 (숫자 필드)를 기반으로하는 것입니다.

답변

0

이들은 SimpleCursorAdapter를 사용하므로 출력을 변경하려면 직접 작성해야합니다. 데이터 프리젠 테이션을 처리하는 어댑터에서 getView() 메소드를 대체 할 수 있습니다. 그런 다음 db의 데이터로 각 행을 채 웁니다. 그리고 데이터에 따라 다른 배경색을 설정하십시오.

public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    if (v == null) { 
     LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = inflater.inflate(R.layout.my_layout, null); 
    } 
    Cursor.moveToPosition(position); 
    ImageView img = (ImageView)v.findViewById(R.id.bg); 

    if (Cursor.getString(Cursor.getColumnIndex("column")).equals("black")) { 
     img.setImageBackground(Color.Black); 
    } 

    return v; 
+0

감사합니다. 더 자세히 보도록하겠습니다. 비슷한 예제 코드 나 튜토리얼이 있습니까? 나는 안드로이드 개발에 매우 ​​새로운 것이므로 모든 예제가 매우 도움이 될 것입니다. –

+0

늦게 답변 해 주셔서 감사합니다. 지금까지 아마 어댑터 문제를 해결했을 것입니다. 유용한 문서 http://www.slideshare.net/peterbuck/getting-fancy-with-lists에 대한 링크를 전달하겠습니다. 참고하시기 바랍니다, 그들은 SimpleCursorAdapter의 생성자 중 하나를 사용 중지했습니다. – nahwarang

+0

고마워, 지금 막 이걸로 갈거야, 내가 좀 걸릴거야. –

0

화랑의 대답은 정확합니다. getItem 메소드를 사용하여 목록의 특정 위치에서 항목을 가져 와서 어떤 유형의 데이터인지 판별 할 수도 있습니다. 그런 다음 getView 메서드에서 해당 행의 배경색을 변경하십시오.

관련 문제