제가 커스텀 리스트 뷰를 지금 하나 쓰고 있는데

다른 형식으로 하나 더 만들려고 하는데요. 소스를 잘 이해 못해서인지 새로 만들어 쓰질 못하겠네요


새로 만들어 쓰려면 새로 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);