安卓重要组件#1--ListView创建及基本的使用方法

第一次写有关安卓技术的博客,有什么地方写的不好的请大家见谅。如果大家发现本人写的博客中有什么需要错误的地方或者疑问可以给我留言。


好了话不多说开始向介绍今天的内容

1:首先创建一个listView控件(控件位于Composite里面的第一个,如图所示)

安卓重要组件#1--ListView创建及基本的使用方法

2:让我们打开layout布局的代码形式,这里有一个关键的地方要注意,listView控件的高度要设置成固定高度(或者match_parent)不能让其随着文本的而增长(如图所示)。如果不这样设置会导致显示出来的文本会乱跳或者串行。这样我们就做好的listView的布局

安卓重要组件#1--ListView创建及基本的使用方法

3:接下来让我们来看下具体代码操作(所有代码均写在oncreate()方法内)

(1):获取控件中ListView对象

ListView listView = (ListView) findViewById(R.id.listView1);

(2):新建一个适配器对象baseAdapter(别看代码长其实是由于baseAdapter实现adapter接口需要重写方法,所以方法都是自动产生的大家只需新建对象即可)

BaseAdapter adapter = new BaseAdapter() {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                return null;
            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return 0;
            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return null;
            }
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return 0;
            }
        };

(3):这时候要跟大家说说listView的特点了,listView是由一个个相同的行布局组成的控件,所以这时候我们需要创建行布局。(如图所示)

安卓重要组件#1--ListView创建及基本的使用方法

(4):让我们回到代码,adpter里面有个getcount()方法用于指定你所需要在屏幕上显示的行布局的数量,例如你需要10个那么就return 10,系统运行时就会根据return数量来执行相对应次数的getView()方法

@Override
            public int getCount() {
                // TODO Auto-generated method stub
                return 10;
            }

(5):adpter里面有个getView方法用于找到行布局(以下代码都是在getView()方法):

(5)-1: 将行布局转化为对象(第一个参数为行布局id,第二个为null占时还用不到)

View layout = getLayoutInflater().inflate(R.layout.list, null);

(5)-2: 将行布局对象return

return layout;

以下就是baseAdapter的完整的代码(由于插入代码功能会让格式乱套所以我就直接复制代码过来)

BaseAdapter adapter = new BaseAdapter() {


@Override

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

View layout = getLayoutInflater().inflate(R.layout.list, null);

return layout;

}


@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}


@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}


@Override

public int getCount() {

// TODO Auto-generated method stub

return 10;

}

};

(6):最后我们将调用listView对象的setadapter方法将写好的adapter对象放进去,好了大功告成


listView.setAdapter(adapter);



(7):运行结果+完成的java代码

安卓重要组件#1--ListView创建及基本的使用方法

4:这就是listview控件的基本使用方法,我会吧整个程序打包如果有需要的话可以拿去看看.下次博客我会为大家介绍怎么为行布局里面的控件添加不同的内容和listView的服用。(小弟第一次写博客忘多关照,未完待续。。。。。)


附件:http://down.51cto.com/data/2363312