본문 바로가기
카테고리 없음

CustomList 예제

by ByteBridge 2013. 2. 20.
반응형


<?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" >


    <TextView

        android:id="@+id/textView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/large_text"

        android:textAppearance="?android:attr/textAppearanceLarge"

        android:textColor="#00F" />


    <TextView

        android:id="@+id/textView2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Medium Text"

        android:textAppearance="?android:attr/textAppearanceMedium" 

        android:textColor="#0F0" />


</LinearLayout>



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >


    <EditText

        android:id="@+id/editText1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10" >


        <requestFocus />

    </EditText>


    <EditText

        android:id="@+id/editText2"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10" />


    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="Button" />


    <ListView

        android:id="@+id/listView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" >

    </ListView>


</LinearLayout>




package com.example.customlist;


public class MyData {

public String title;

public String desc;

public MyData(String title,String desc){

this.title = title;

this.desc = desc;

}

//

}



package com.example.customlist;

import android.content.Context;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import android.widget.TextView; 
/**
 * 
 * @author Dream
 * layoutinflater 를 얻어와서 
 */
public class MyItemView extends LinearLayout {

TextView titleView;
TextView descView;
MyData mData;
public MyItemView(Context context) {
super(context);
// TODO Auto-generated constructor stub
///레이아웃 인플레이터 얻어오기
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.item_layout, this);
titleView = (TextView)findViewById(R.id.textView1);
descView = (TextView)findViewById(R.id.textView1);
}
public void setData(MyData data){
mData = data;
titleView.setText(data.title);
descView.setText(data.desc);
}
}


package com.example.customlist;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

public class MyAdapter extends BaseAdapter {
List<MyData> mData = new ArrayList<MyData>();
Context mContext;
public MyAdapter(Context context) {
// TODO Auto-generated constructor stub
mContext = context;
}
public  MyAdapter(Context context,List<MyData>items) {
// TODO Auto-generated method stub
mContext = context;
mData.addAll(items);
 
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mData.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
MyItemView view = new MyItemView(mContext);
view.setData(mData.get(position));
return view;
}

}

package com.example.customlist;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;

public class MainActivity extends Activity {

ListView list;
MyAdapter mAdapter;
List<MyData> items = new ArrayList<MyData>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = (ListView)findViewById(R.id.listView1);
        initData();
        mAdapter = new MyAdapter(this,items);
        list.setAdapter(mAdapter);
    }

    public void initData(){
    items.add(new MyData("title1"," desc"));
    items.add(new MyData("title1"," desc"));
    items.add(new MyData("title1"," desc"));
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}



반응형