ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CustomList 예제
    카테고리 없음 2013. 2. 20. 12:41
    반응형


    <?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;
        }
        
    }



    반응형
Designed by Tistory.