view

listview入门

android ListView数据的加载是典型的mvc模式

简单ListView的实现

?

public class ListViewActivity extends Activity {

private ArrayList infos = new ArrayList();

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ListView lv_info = (ListView) this.findViewById(R.id.lv_info);

PersonDao dp = new PersonDao(getApplicationContext());

this.infos = dp.findAll();

lv_info.setAdapter(new MyAdapter());

}

 // 默认实现类 BaseXXX SimpleXXX DefaultXXX

private class MyAdapter extends BaseAdapter {

@Override

public int getCount() {

return infos.size();

}

@Override

public Object getItem(int arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Log.i("MyAdapter", "获取第" + position + "位置!");

TextView tv = new TextView(getApplicationContext());

tv.setTextSize(20);

tv.setTextColor(Color.WHITE);

tv.setText(infos.get(position).toString());

return tv;

}

}

}

采用layoutInflater打气筒创建一个view对象

1.布局文件

<?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="60dp"

    android:gravity="center_vertical"

    android:orientation="horizontal" >

    <TextView

        android:id="@+id/tv_id"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginLeft="10dp"

        android:text="id"

        android:textColor="#ff0000"

        android:textSize="30sp" />

    <LinearLayout

        android:layout_width="fill_parent"

        android:layout_height="60dp"

        android:gravity="center_vertical"

        android:orientation="vertical" >

        <TextView

            android:id="@+id/tv_name"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:text="name"

            android:textColor="#ffffff"

            android:textSize="30sp" />

        <TextView

            android:id="@+id/tv_number"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_marginLeft="10dp"

            android:text="number"

            android:textColor="#66ffffff"

            android:textSize="15sp" />

    </LinearLayout>

</LinearLayout>

2.关键代码

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Log.i("MyAdapter", "获取第" + position + "位置!");

Person person = infos.get(position);

View view = View.inflate(getApplicationContext(),

R.layout.info_item, null);

TextView tv_id = (TextView) view.findViewById(R.id.tv_id);

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

TextView tv_number = (TextView) view.findViewById(R.id.tv_number);

tv_id.setText("id:" + person.getId());

tv_name.setText("name:" + person.getName());

tv_number.setText("name:" + person.getNumber());

return view;

}

原文地址:https://www.cnblogs.com/freenovo/p/4469837.html