나는 Array Adapter와 ArrayList로 작성된 간단한 listview를 가지고 있습니다.ListView의 텍스트 색상 변경
목록보기에서 특정 행에 액세스 한 다음 목록보기에서 해당 행에있는 텍스트보기의 텍스트 색을 변경하려면 어떻게해야합니까?
는 내가 텍스트 뷰의 텍스트 색상을 변경하지만 난 당신이 바꿀 수 귀하의 어댑터에, getView
방법 목록보기 사용자 지정 목록 항목과
나는 Array Adapter와 ArrayList로 작성된 간단한 listview를 가지고 있습니다.ListView의 텍스트 색상 변경
목록보기에서 특정 행에 액세스 한 다음 목록보기에서 해당 행에있는 텍스트보기의 텍스트 색을 변경하려면 어떻게해야합니까?
는 내가 텍스트 뷰의 텍스트 색상을 변경하지만 난 당신이 바꿀 수 귀하의 어댑터에, getView
방법 목록보기 사용자 지정 목록 항목과
simple_list_item_1의 소스를 살펴보면 단순한 TextView임을 알 수 있습니다. 소스는 다음과 같습니다.
<sdk-dir>/platforms/<your-platform>/data/res/layout/simple_list_item_1
ArrayAdapter 수퍼 클래스는 getView 메소드에서 TextView를 반환합니다. 즉, ArrayAdapter를 하위 클래스로 만들 수 있으며 하위 클래스의 getView 메소드 내부에서 수퍼 클래스에 체인을 연결하고 TextView로 반환하는 뷰를 캐스팅 할 수 있습니다.
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = (TextView) super.getView(position, convertView, parent);
if (position < 3) {
tv.setTextSize(24.0f);
} else {
tv.setTextSize(14.0f);
}
return tv;
}
당신이 simple_list_item_1보다 더 복잡한보기를 사용하는 경우, 당신은 할 수 있습니다 : 당신이 14 TEXTSIZE (24)와 나머지 목록의 처음 세 항목을 설정하기를 원한다면 예를 들어, 다음을 수행 할 수 소스를 검사하여 뷰에있는 요소의 ID를 파악한 다음 수퍼 클래스가 반환 한 뷰에서 findViewById를 호출합니다. 예를 들어, two_line_list_item.xml는 android.R.id.text1
및 android.R.id.text2
의 ID와 TextViews이 있으므로 다음과 같이 그들에 대한 핸들을 얻을 수 있어야 :
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView tv1 = (TextView)v.findViewById(android.R.id.text1);
TextView tv2 = (TextView)v.findViewById(android.R.id.text2);
//do what you want with the TextViews
}
의 내부에 텍스트 뷰를 액세스하는 데 문제가이야하는 방법을 알고 findViewById(R.id.myText)
을 호출하고 setTextColor
을 호출하여 텍스트 색상을 쉽게 지정할 수 있습니다. 사실 당신은 내장 된 목록 항목으로 이것을 할 수 있습니다, 당신은 TextView의 ID를 알아야 할 것입니다 ... 나는 비공개는 아니지만 쉽게 찾을 수 있어야합니다.
표준 ListView 항목을 사용하는 경우 XML로 변경하려면 Applying Styles and Themes을 참조하여 텍스트 색을 변경하십시오.
그래서 자바 파일에 그것을 할 방법이 없다? 일부 입력 값을 기반으로 동적으로 변경하려고했습니다 – au789
사용자 정의 목록 항목을 사용하면 어댑터의 getView 메소드에서'findViewById (R.id.myText) '를 호출하고'setTextColor '. 실제로는 목록 항목을 사용하여이 작업을 수행 할 수 있습니다. TextView의 ID를 알아야합니다. –
그래서 어레이 목록 및 어레이 어댑터로는 불가능하다고 말하고 있습니다. 사용자 지정 목록 항목을 만들어야하는 결과를 얻고 싶다면? – au789