-
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 stubmContext = context;}public MyAdapter(Context context,List<MyData>items) {// TODO Auto-generated method stubmContext = context;mData.addAll(items);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mData.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn mData.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View arg1, ViewGroup arg2) {// TODO Auto-generated method stubMyItemView 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>();@Overrideprotected 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"));}@Overridepublic 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;}}반응형