Android ListView自定义布局
来源:互联网 发布:明天教室网络课 编辑:程序博客网 时间:2024/04/30 00:39
本人,刚刚入行android,今天碰到ListView自定义布局的问题,参考了些网上资料,终于实现了这一功能,别喷我,小弟是新手
我认为最主要的是适配器的编写,在这里我们先写个LIstview的布局文件listview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal" ><TextViewandroid:id="@+id/item_tv"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_vertical"/><TextViewandroid:id="@+id/item_tv1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"/></LinearLayout>
然后我们就开始编写最主要部分了--适配器,集成BaseAdapter
public class ListViewAdapter extends BaseAdapter {//填充数据的ListList<Map<String,Object>> list =new ArrayList<Map<String,Object>>();//上下文private Context context;//用来导入布局private LayoutInflater inflater =null;//构造器public ListViewAdapter(List<Map<String,Object>> list,Context context){this.context=context;this.list=list;inflater=LayoutInflater.from(context);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn list.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn list.get(arg0);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}//核心部分,返回Listview视图@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder = null;if (convertView == null){holder=new ViewHolder();convertView =inflater.inflate(R.layout.listview, null);holder.tv=(TextView)convertView.findViewById(R.id.item_tv);holder.tv1=(TextView)convertView.findViewById(R.id.item_tv1);//为view设置标签convertView.setTag(holder);}else{holder=(ViewHolder)convertView.getTag();}holder.tv.setText(list.get(position).get("text").toString());holder.tv1.setText(list.get(position).get("text1").toString());return convertView;} static class ViewHolder { TextView tv; TextView tv1; } }
public class OneTreasureActivity extends Activity {private ListView lv;private ListViewAdapter lvAdapter;List<Map<String,Object>> list =new ArrayList<Map<String,Object>>();//private ArrayList<String> list;public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv = (ListView) findViewById(R.id.CapsuleListView); // list=new ArrayList<Map<String,Object>>(); initDate(); lvAdapter =new ListViewAdapter(list,this); lv.setAdapter(lvAdapter); }//为了省事,这里就不改了,大概就是请求数据,返回json值进行解析private void initDate() {// TODO Auto-generated method stublist=getCapsuleListData("servlet/ShowCapsuleServlet.do");}public void onetreasuremorebtn(View v){Intent intent = new Intent (OneTreasureActivity.this,OneTreasureMore.class);startActivity(intent);}public List<Map<String,Object>> getCapsuleListData(String s){ Map<String,Object> map =new HashMap<String,Object>(); try{ String url=HttpUtil.BASE_URL+s; String body=HttpUtil.queryStringForPost(url);JSONArray array=new JSONArray(body);list.clear(); for(int i=0;i<array.length();i++){ JSONObject obj=array.getJSONObject(i); map.put("text",obj.getString("text")); map.put("text1", obj.getString("text1")); list.add(map); map =new HashMap<String,Object>(); } }catch(Exception e){ e.printStackTrace(); } return list; }}
就这样listview自定义布局完成
0 0
- Android ListView自定义布局
- android之ListView自定义布局
- android ListView 自定义布局 有多选框
- ANDROID 为LISTVIEW构造自定义布局
- Android学习ListView自定义布局,适配器BaseAdapter
- Android控件ListView自定义列表布局
- 自定义listview的布局
- listview自定义布局
- LIstView自定义布局
- ListView 自定义item布局 android.widget.LinearLayout$LayoutParams
- ListView 自定义item布局 android.widget.LinearLayout$LayoutParams
- Android 自定义 布局 ListView BaseAadaper 单击高亮选中项
- android listView 自定义布局结合CheckedTextView实现多选
- Android自定义Dialog布局listview 实现显示安装的应用
- Android ListView自定义布局抛java.lang.UnsupportedOperationException的解决
- Android Studio——自定义ListView子项目布局
- Android基础之自定义控件、布局以及ListView控件
- android listView 自定义布局结合CheckedTextView实现多选
- 枚举
- 改革春风吹满地
- Oracle expdp与impdp导数
- Hint example
- 推荐几份帮助你学习CSS3的实用手册
- Android ListView自定义布局
- 关于天朝的文化和民族的劣根性
- Windows消息机制概述
- 12个有趣的C语言问答
- nagios添加多语言实现
- 百度数据挖掘工程师实习生笔试面试题
- 2014-1-3 17:32:00Aspose
- 反射机制
- 多线程总结