좋아, 여기에 당신이 명확 약해야 몇 가지 사항은 다음과 같습니다
- 당신이 당신의 XML 파일에 설정되는 배경색이 활동입니다 아닌 많은 ListItems 사용자가 정의한 위해 노력하고 있습니다.
- 모든 목록 항목에는 목록 항목에 복잡한 레이아웃을 사용하는 경우 전달되거나 확장되어야하는 자체 레이아웃 파일이 있습니다.
내가 코드 샘플 이것을 설명하려고합니다 :
는 **** 많은 ListItems 레이아웃 시작할 수 있습니다 ** : 말하자면 당신의 당신의 res/layout
폴더 안드로이드 프로젝트에 저장 ** list_black_text .XML
<?xml version="1.0" encoding="utf-8"?>
<!-- Definig a container for you List Item-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Defining where should text be placed. You set you text color here-->
<TextView
android:id="@+id/list_content"
android:textColor="#000000"
android:gravity="center"
android:text="sample"
android:layout_margin="4dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
음, TextView
간단한 레이아웃은 정확합니다. TextView를 사용하려면 ID를 할당해야합니다.
이제 화면/액티비티/수석 레이아웃이 나오는데, 내가 말한대로 android:background
속성을 사용하여 화면에 배경을 정의했습니다. 거기에 TextView도 정의되어 있고 거기에 내용/목록 항목을 정의하려고한다고 생각합니다.이 부분은 필요하지 않습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ListView
android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- REMOVED TEXT VIEW, AND KEEPING BACKGROUND WHITE -->
</LinearLayout>
그리고 마지막으로, 가장 중요한 것은, 당신의 어댑터를 설정합니다
여기에 편집 된 레이아웃입니다. 텍스트 뷰 ID입니다
setListAdapter(new ArrayAdapter<String>(
this, R.layout.list_black_text, R.id.list_content, listItems));
공지 사항 우리는 R.layout.list_black_text
은 어댑터에 전달하는 레이아웃 리소스 및 R.id.list_content
우리는 선언했다. ArrayAdapter는 일반이기 때문에 String 유형으로 변경했습니다.
나는 이것이 모든 것을 설명하기를 바랍니다. 동의하면 내 대답에 동의 표시를하십시오.
지저분한 그러나 당신이 정의하는 복잡한 레이아웃을 진행하지 않으려면 당신은 또한 빠른 수정하여이 작업을 수행 할 수 있습니다
좋은 빠른 수정 방법 등
어댑터를 인스턴스화하는 동안
는 내부 클래스를 선언
my_styles.xml
및
res/values
에 저장 :
ArrayAdapter<String> adapter=new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, listItems){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view =super.getView(position, convertView, parent);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
/*YOUR CHOICE OF COLOR*/
textView.setTextColor(Color.BLUE);
return view;
}
};
/*SET THE ADAPTER TO LISTVIEW*/
setListAdapter(adapter);
고마워요. 친구. ListView에 대한 별도의 XML 파일이 있다는 것을 결코 알지 못했습니다. –
이것은 나에게 오류를줍니다. ArrayAdapter는 리소스 ID가 TextView 여야합니다. 자신의 어댑터를 쓰지 않고 어떻게 작동 시키려고 했습니까? – odiggity
@odiggity, 4 대신에 4 인수 생성자를 사용하십시오. 이미 그렇게하고 있다면, 4 arg 생성자의 3 번째 인수는 목록 항목 레이아웃에 설명 된 textview에 대한 id 참조입니다. 짧은 R.id.list_content my 예 : R.layout으로 지정된 내 목록 항목 레이아웃의 textview를 참조하는 id입니다.list_black_text – Shardul