ListView控件绑定数据

来源:互联网 发布:订货会软件 编辑:程序博客网 时间:2024/05/16 09:42

1.创建ListView程序对应的布局文件(activity_main.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/container"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.helloworldd.MainActivity" >    <ListView        android:id = "@+id/lv";        android:layout_width="match_parent";        android:layout_height = "wrap_content"/>    </LinearLayout>

2.创建Item布局

创建好ListView界面之后接下来需要创建ListView条目,在res/layout目录下创建一个list_item.xml文件,指定Item布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <TextView         android:id="@+id/tv_list"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:paddingLeft="10dp"        android:layout_marginLeft="10dp"        android:textSize="18sp"        android:hint="item布局"        /></RelativeLayout>

3.编写界面交互代码(MainActivity)

public class MainActivity extends ActionBarActivity {    private ListView listView;     //存放回帖信息,data获取的数据我就不写了,大家可以把data替换成    //其他    List<String> data = new ArrayList<String>();    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);           //绑定控件            listView = (ListView) findViewById(R.id.listView1);        //创建一个Adapter的实例        final MyBaseAdapter mAdapter = new MyBaseAdapter();         //设置Adapter        listView.setAdapter(mAdapter);       }    /*     * 创建一个类继承BaseAdapter     */    class MyBaseAdapter extends BaseAdapter{        /**         * 得到Item的总数         */        @Override        public int getCount() {            // TODO Auto-generated method stub            //返回ListView Item条目的总数            return data.size();        }        /**         * 得到Item代表的对象         */        @Override        public Object getItem(int position) {            // TODO Auto-generated method stub            // 返回ListView Item条目代表的对象            return data.get(position);        }        /**         * 得到Item的id         */        @Override        public long getItemId(int position) {            // TODO Auto-generated method stub            //返回ListView Item的id            return position;        }        /**         * 得到Item的View视图         */        @Override        public View getView(int position, View convertView, ViewGroup parent) {            // TODO Auto-generated method stub            //将List_item.xml文件找出来并转换成View对象            View view = View.inflate(MainActivity.this, R.layout.list_item, null);            //找到list_item.xml中创建的TextView            TextView textView = (TextView) view.findViewById(R.id.tv_list);            textView.setText(data.get(position));            return view;        }   }

上述代码的MyBaseAdapter类,是用来适配数据到ListView的,继承自BaseAdapter并实现了getCount(),getItem(),getItemId(),getView()这4个方法。其中,getView()方法中调用了View.inflate()方法,这个方法的作用是将list_item布局找出来。只有在找出了布局之后,才能调用findViewById()的方法去找到控件。

0 0