ListView控件:(3)BaseAdapter适配器生成
2015-12-26 20:38
351 查看
1.编写BaseAdapterActivity.java类
4000package com.example.yun; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class BaseAdapterActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_baseadapter); ListView baseListView = (ListView) findViewById(R.id.baseListView); MyAdapter mAdapter = new MyAdapter(this);// 得到一个MyAdapter对象 baseListView.setAdapter(mAdapter);// 为ListView绑定Adapter } private class MyAdapter extends BaseAdapter { private LayoutInflater mInflater;// 得到一个LayoutInfalter对象用来导入布局 /** 构造函数 */ public MyAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return getData().size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder holder; // 观察convertView随ListView滚动情 if (convertView == null) { convertView = mInflater.inflate(R.layout.item_base, null); holder = new ViewHolder(); /** 得到各个控件的对象 */ holder.title = (TextView) convertView .findViewById(R.id.ItemTitle); holder.text = (TextView) convertView .findViewById(R.id.ItemText); holder.bt = (Button) convertView.findViewById(R.id.ItemButton); convertView.setTag(holder);// 绑定ViewHolder对象 } else { holder = (ViewHolder) convertView.getTag();// 取出ViewHolder对象 } /** 设置TextView显示的内容,即我们存放在动态数组中的数据 */ holder.title.setText(getData().get(position).get("ItemTitle") .toString()); holder.text.setText(getData().get(position).get("ItemText") .toString()); /** 为Button添加点击事件 */ holder.bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub // Log.v("MyListViewBase", "你点击了按钮" + // position);//打印Button的点击信息 Toast.makeText(BaseAdapterActivity.this, "你点击了按钮" + position, Toast.LENGTH_LONG).show(); } }); return convertView; } } private ArrayList<HashMap<String, Object>> getData() { ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); /** 为动态数组添加数据 */ for (int i = 0; i < 30; i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("ItemTitle", "第" + i + "行"); map.put("ItemText", "这是第" + i + "行"); listItem.add(map); } return listItem; } public final class ViewHolder { public TextView title; public TextView text; public Button bt; } }
2.编写activity_baseadapter.xml布局类
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ffffff" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="160dp" android:background="@drawable/bg02" > </RelativeLayout> <ListView android:id="@+id/baseListView" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
3.编写item_base.xml布局类
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/ItemTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff00ff" android:textSize="30px" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:maxWidth="100px" android:src="@drawable/ic_launcher" /> <Button android:id="@+id/ItemButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" android:text="Button" /> <TextView android:id="@+id/ItemText" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout>
4.执行结果
相关文章推荐
- 判断完数、输出完数---C++
- Theano Logistic Regression
- jsonp教程及实现
- 用栈和队列求解迷宫问题
- 各手机截屏方法收集
- RedirectToAction、EmptyResult
- iOs真机调试时编译问题
- 爬虫抓取网页
- 【郑轻】[1804]ZY学长的密码
- ruby on rails 禁止转义 HTML
- Hibernate配置文件的hibernate.hbm2ddl.auto
- eclipse常用设置
- uva10714
- 文件打开操作
- SpringMVC入门
- iOS开发——图形编程OC篇&(二)CALayer自定义图层
- Java_List Set Map_集合框架 泛型
- iOS scrollview中添加button
- UITextField监控输入文字变化
- 英语发音纠正