怎么用eclipse编写一个list view

 我来答
EvenHHZ
2016-10-20 · 知道合伙人软件行家
EvenHHZ
知道合伙人软件行家
采纳数:13691 获赞数:18845
个人出版图书:《玩转Python网络爬虫》、《玩转Django2.0》

向TA提问 私信TA
展开全部
方法/步骤
1
新建一个android项目,名称为ListViewAuto,其余参数可以自己配置,点击完成,生成项目文件

2
完成列表要展示的选项实例类,ItemView,其中属性有
//要展示的图片信息
private ImageView image;
//标题信息
private TextView title;
//按钮信息
private Button button;
然后生成对应get,set方法

3
设置配置文件,main.xml
声明ID以及长宽属性
<ListView
android:id="@+id/listInfo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>

4
设置ListView中各个选项的样式配置文件listview.xml,声明一个ImageView展示图片,TextView展示文本信息,Button展示按钮信息

5
实现自定义适配器,必须手动映射数据,这时就需要重写getView()方法,系统在绘制列表的每一行的时候将调用此方法。 ListView在开始绘制的时候,系统自动调用getCount()函数,根据函数返回值得到ListView的长度,然后根据这个长度,调用getView()逐一画出每一行。主要展示getView()方法实现
//展示记录信息
@Override
public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub
ItemView item=null;
if(convertView==null){
item= new ItemView();
//获得组件,实例化组件
convertView=layoutInflater.inflate(R.layout.listview, null);
item.setImage((ImageView)convertView.findViewById(R.id.imageView));
item.setTitle((TextView)convertView.findViewById(R.id.title));
item.setButton((Button)convertView.findViewById(R.id.button));
//这个步骤很重要!!!
//可以使用setTag把查找的view缓存起来方便多次重用
convertView.setTag(item);
}else{
item=(ItemView)convertView.getTag();
}
//绑定数据 ,将传入data进行逐个赋值
item.getImage().setBackgroundResource((Integer)data.get(position).get("imageView"));
item.getTitle().setText((String)data.get(position).get("title"));
item.getButton().setText((String)data.get(position).get("button"));
return convertView;
}
下面是自定义适配器ListViewAdapter的代码图例

6
主体函数编写,先是找到ListView控件,将数据放入适配器中,进行数据展示
public class ListViewAutoShow extends Activity {
/** Called when the activity is first created. */
private ListView listInfo=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listInfo=(ListView)findViewById(R.id.listInfo);
List<Map<String, Object>> result=getData();
listInfo.setAdapter(new ListViewAdapter(this, result));
}
public List<Map<String, Object>> getData() {
// TODO Auto-generated method stub
List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
for (int i = 0; i < 10; i++) {
Map<String, Object> map=new HashMap<String, Object>();
map.put("imageView", R.drawable.ico_info);
map.put("title", "标题信息"+i);
map.put("button", "查看按钮"+i);
list.add(map);
}
return list;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式