zoukankan      html  css  js  c++  java
  • 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;

    }

  • 相关阅读:
    【1】数据库表如何水平拆分和垂直拆分
    【JUC】JDK1.8源码分析之ReentrantReadWriteLock
    【1】【JUC】JDK1.8源码分析之ArrayBlockingQueue,LinkedBlockingQueue
    【JUC】CopyOnWriteArrayList
    <T extends Comparable<? super T>>什么意思
    深拷贝和浅拷贝及实现
    序列化和反序列化的底层实现原理
    willMoveToParentViewController和didMoveToParentViewController
    自定义 ViewController 容器转场
    iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
  • 原文地址:https://www.cnblogs.com/freenovo/p/4469837.html
Copyright © 2011-2022 走看看