2012-04-23 11 views
0

변수에 따라 ListView 항목의 색상을 변경하고 싶습니다. (Async 클래스로 채워짐). 그래서 이걸 가지고 있어요android ListView item fore 색

public class Search extends AsyncTask<Void, String, Void> { 
    boolean blue = false; 
    @Override 
    protected Void doInBackground(Void... params) { 
     Resources res = getResources(); 
     List<String> Items = Arrays.asList(res.getStringArray(R.array.Items)); 
     for (String it : Items) { 
      if (it.contains("blue")) { blue = true; } else { blue = false; }  
      publishProgress(it); 
     } 
     return null; 
    } 

    @SuppressWarnings("unchecked") 
    @Override 
    protected void onProgressUpdate(String... item) { 
     ((ArrayAdapter<String>)getListAdapter()).add(item[0]); 
     // Change the color of the current item depending on "blue" 
    } 
} 

이게 가능합니까? 감사!

답변

1

사용자 지정 어댑터에서 getView을 재정의하고 사용자 지정보기를 제공해야합니다.

+0

클래스 내부 또는 어디에? – ali

+0

BaseAdapter 또는 일부 다른 어댑터를 확장하십시오. –

0

확실히 배열 어댑터에 요소를 추가 할 수 있습니다. 그러나 처리 여러 차례 문제가 있습니다 (참) setNotifyOnChange를 호출하는 것을 잊지 마세요 ArrayList에 또는 당신이 실제로

  • add를 호출 할 수 있습니다 무엇에

    1. 패스를;

    일반적으로 그렇게해야합니다. 그러나 항목을 추가하는 AsyncTask를 사용하여 왜, 그리고 무엇을하는지 이해할 수 있는지 잘 모르겠습니다 ...

    ListView를 만들 때 왜 추가하지 않으시겠습니까? 내가 놓친 것이 있습니까?

  • +0

    이 문제에 대한 불필요한 코드를 제거했습니다. AsynkTask도 항목을 필터링하지만 해당 코드는 포함하지 않았습니다. – ali