2014-02-27 2 views
0

나는 안드로이드 어플리케이션을 만들고 있습니다. 내 응용 프로그램에서 나는 listview를 사용하고있다. 이것은 내가 사용하고있는 코드입니다안드로이드리스트 뷰 컬러

ListView listSearchResults = (ListView)findViewById(R.id.listViewSearchResults); 
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, searchResults); 
listSearchResults.setAdapter(arrayAdapter); 

"searchresults"는 문자열 배열입니다. 응용 프로그램 목록보기 텍스트를 흰색으로 실행하면 실행됩니다. 나는 아무것도 바꾸지 않았고 다른 뷰에서 동일한 코드를 사용하여 검정색으로 표시했습니다. 왜 자동으로 색상이 변경됩니까? 이것에 대한 이유가 있습니까?

+0

'활동'컨텍스트를 사용하십시오. – Luksprog

+0

어쩌면 부모보기 중 하나가 색상을 변경하기 위해 특정 스타일을 가졌거나 완전히 다른 테마를 가지고있을 수 있습니다. – DroidBender

+0

당신은'android.R.layout.simple_spinner_item'을 어떻게 사용해야할까요? – njzk2

답변

2

난 당신이 응용 프로그램 컨텍스트와 레이아웃 인플레이션 this tutorial on Context

읽어 제안, 그것은 말한다 :

이 합법적이지만, 인플레이션이 시스템의 기본 테마와 함께 할 것이다에 당신 실행 중인지, 애플리케이션에서 정의 된 것이 아닙니다.

나는 이것이 약간 다른 것으로 생각됩니다. 대신 어댑터의 Activity 컨텍스트를 사용해보십시오.

+0

문제 나는이 코드 블록을 콜백 함수에서 사용했기 때문에 getApplicationContext()를 사용하는 이유 인 "this"키워드를 사용할 수 없었다. 하지만 이제 getBaseContext()로 변경하여 이제는 잘 작동합니다. 귀하의 답변에 감사드립니다. 건배!! –

0

두 부모의 xml 파일 Mainfest에서 을 확인하면 서로 다릅니다. 예 :

android:textColor="#ffffff" 
0

당신이 추가보다의 ListView에서 스크롤하는 동안 검은 화면을 얻는 경우 :

<... android:theme="@android:style/Theme.Black"> 

문제를 해결하는 또 다른 방법은 다음과 같은 샘플 simple_spinner_item의의 XML에서 색상을 강제하는 것입니다 ListView에 태그에 속성 :

안드로이드 : cacheColorHint = "@ 안드로이드 : 컬러/투명"또는 안드로이드 : cacheColorHint = "# 00000000"

체크 자세한 내용은 this blog