2012-09-25 3 views
5

목록보기에서 특정 항목의 배경색을 설정하려고합니다.listview에서 특정 항목의 배경색을 위치별로 설정하는 방법은 무엇입니까?

내 listview는 ArrayList를 사용하여 ArrayAdapter에 의해 생성됩니다.

배경색을 변경하려는 특정 항목이 목록보기에 있습니다.

목록의 항목 위치를 알고 있습니다.

이것은 목록보기를 생성하기위한 코드입니다.

respondMessageListView = (ListView) findViewById(R.id.respondMessageListView); 
respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages())); 

고맙습니다! 에서 onCreate (사용되는 경우

[편집]

this post에 따르면 setSelection을 이용하면, 작업은 약 "PullToRefreshListView에있어서 onAttachedToWindow 제거"인) 영향을하지 않는다. 나는 그 해결책을 이해하지 못하고있다. 이 일을 어떻게해야합니까? 나는 Activity의 하위 클래스이므로 더 이상 다른 클래스를 하위 클래스로 만들 수 없습니다.

+0

시도해 봤나? http://stackoverflow.com/questions/6055277/set-a-background-color-to-a-selected-listview-item-in-android –

+0

나는 그것을 시도했다. 그것은 myList에 nullpointerexception을 준다. .getSelectedView(). setBackgroundColor (getResources(). getColor (Color.RED)); – ssgao

답변

2

ArrayAdapter의 하위 클래스를 지정하고 getView(...) 메서드를 재정의해야합니다. 단순함을 위해 기본 클래스 구현을 호출하고 반환되는 View의 배경색을 설정할 수 있습니다.

편집 : 다음 예제에서는 항목의 배경을 흑백으로 번갈아 색을 지정합니다.

private class MyAdapter extends ArrayAdapter { 

    ... 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = super.getView(position, convertView, parent); 
     v.setBackgroundColor(position % 2 == 0 : 0xff000000, 0xffffffff); 
    } 
} 
+0

이미 하위 클래스로 분류했습니다. – ssgao

+0

동일한 것은 아닙니다. ArrayAdapter를 하위 클래스 화하면 필요한 메서드를 재정의 할 수 있습니다. 서브 클래 싱 액티비티로 아무 것도 얻을 수 없습니다. 이리. – zienkikk

+0

음 ... 한 클래스 만 하위 클래스로 만들 수 있다는 것을 의미합니다. Activity 클래스를 하위 클래스로 만들면 더 이상 ArrayAdapter를 하위 클래스로 만들 수 없습니다. – ssgao

0

이 코드는 listitem을 선택한 경우를위한 것입니다.

이 코드를 시도

...

listview.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) { 

      if(pos == 1) { 
        // to change the listview background 
        listview.setBackgroundColor(getResources().getColor(R.color.your_color_id)); 

        // to change the selected item background color 
        myView.setBackgroundColor(getResources().getColor(R.color.your_color_id)); 
      } 
      } 
      }); 

행운을 빕니다.

관련 문제