제가 커스텀 리스트 뷰를 지금 하나 쓰고 있는데
다른 형식으로 하나 더 만들려고 하는데요. 소스를 잘 이해 못해서인지 새로 만들어 쓰질 못하겠네요
새로 만들어 쓰려면 새로 xml파일은 만들어야 할 것 같은데 java파일도 만들어야 될까요
일단 제 커스텀 리스트뷰 소스부터 보여드릴께요
Custom_List_Adapter.java
package com.example.gdpedia;
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class Custom_List_Adapter extends ArrayAdapter<Custom_List_Data> {
private ArrayList<Custom_List_Data> items;
public Custom_List_Adapter(Context context, int textViewResourceId,
ArrayList<Custom_List_Data> items) {
super(context, textViewResourceId, items);
this.items = items; }
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.custom_list, null);
}
Custom_List_Data custom_list_data = items.get(position);
if (custom_list_data != null) {
//하나의 이미지뷰와 2개의 텍스트뷰 정보를 받아온다.
ImageView iv = (ImageView)v.findViewById(R.id.custom_list_image);
TextView tv_Main = (TextView) v.findViewById(R.id.custom_list_title_main);
TextView tv_Sub = (TextView) v.findViewById(R.id.custom_list_title_sub);
// 현재 item의 position에 맞는 이미지와 글을 넣어준다.
iv.setBackgroundResource(custom_list_data.getImage_ID());
tv_Main.setText(custom_list_data.getMain_Title());
tv_Sub.setText(custom_list_data.getSub_Title());
}
return v;
}
}
class Custom_List_Data {
private int Image_ID;
private String Main_Title;
private String Sub_Title;
public Custom_List_Data(int _Image_ID, String _Main_Title, String _Sub_Title) {
this.setImage_ID(_Image_ID);
this.setMain_Title(_Main_Title);
this.setSub_Title(_Sub_Title);
}
public int getImage_ID() {
return Image_ID;
}
public void setImage_ID(int image_ID) {
Image_ID = image_ID;
}
public String getMain_Title() {
return Main_Title;
}
public void setMain_Title(String main_Title) {
Main_Title = main_Title;
}
public String getSub_Title() {
return Sub_Title;
}
public void setSub_Title(String sub_Title) {
Sub_Title = sub_Title;
}
}
custom_list.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/list_item_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/custom_list_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/custom_list_title_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#2f2f2f" />
<TextView
android:id="@+id/custom_list_title_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginLeft="10dp"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
리스트뷰 뿌리기
for(int i=2;i<c.getColumnCount();i++) {
data = new Custom_List_Data(0, "▶"+c_colums.getString(i),c.getString(i));
Array_Data.add(data);
}
ListView list_member_info = (ListView) findViewById(R.id.list_member_info);
adapter = new Custom_List_Adapter(this, android.R.layout.simple_list_item_1, Array_Data);
list_member_info.setAdapter(adapter);