当前位置:首页 > 开发 > 移动开发 > 正文

Android Adapter详解(2)

发表于: 2013-12-26   作者:不懂事的小屁孩   来源:转载   浏览:
摘要: 3:BaseAdapter 这种Adapter写起来最复杂,但是可以实现的功能却是最多的,比如说在某一个listview中加入button的监听事件等等,这也是必备的掌握技能 package com.example.arrayada; import java.util.ArrayList; import java.util.HashMap; import java.util.Li
3:BaseAdapter
这种Adapter写起来最复杂,但是可以实现的功能却是最多的,比如说在某一个listview中加入button的监听事件等等,这也是必备的掌握技能

package com.example.arrayada;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;

import com.example.adapter.MyBaseAdapter;

public class BaseActivity extends Activity{
	
	private ListView listview = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.base_main);
		listview = (ListView) findViewById(R.id.balist);
		listview.setAdapter(new MyBaseAdapter(this, getData()));
	}
	
	private List<HashMap<String, Object>> getData(){
		List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		
		HashMap<String, Object> map = new HashMap<String,Object>();
		map.put("img", R.drawable.pkq);
		map.put("te1", "皮卡丘");
		map.put("te2", "能力五星");
		map.put("te3", "查询详细");
		list.add(map);
		
		map = new HashMap<String,Object>();
		map.put("img", R.drawable.jng);
		map.put("te1", "皮卡丘");
		map.put("te2", "皮卡丘");
		map.put("te3", "皮卡丘");
		list.add(map);
		
		map = new HashMap<String,Object>();
		map.put("img", R.drawable.xhl);
		map.put("te1", "皮卡丘");
		map.put("te2", "皮卡丘");
		map.put("te3", "皮卡丘");
		list.add(map);
		
		map = new HashMap<String,Object>();
		map.put("img", R.drawable.zz);
		map.put("te1", "皮卡丘");
		map.put("te2", "皮卡丘");
		map.put("te3", "皮卡丘");
		list.add(map);
		
		return list;
	}
	
}


base_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/balist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_weight="1">
    </ListView>
    
    <Button
        android:id="@+id/but3" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="baseadapter 的listview" />

</LinearLayout>


base_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/img2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="23dp"
            android:text="TextView" />


        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

    </LinearLayout>
    
    <Button
        android:id="@+id/base_but"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />
    
</LinearLayout>


package com.example.adapter;

import java.util.HashMap;
import java.util.List;

import com.example.arrayada.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MyBaseAdapter extends BaseAdapter{
	
	private Context c =null;
	
	private List<HashMap<String, Object>> list;
	
	private LayoutInflater myInflater = null;

	public MyBaseAdapter(Context context,List<HashMap<String, Object>> baselist) {
		c = context;
		list = baselist;
		System.out.println(list.size());
	}

	@Override
	public int getCount() {
		return list.size();
	}

	@Override
	public Object getItem(int arg0) {
		return arg0;
	}

	@Override
	public long getItemId(int arg0) {
		return arg0;
	}

	@Override
	public View getView(int arg0, View arg1, ViewGroup arg2) {
		
		BaseHolder baseHolder = new BaseHolder();
		if(arg1 == null){
			myInflater = LayoutInflater.from(c);
			arg1 = myInflater.inflate(R.layout.base_list, null);
			baseHolder.img = (ImageView) arg1.findViewById(R.id.img2);
			baseHolder.textview1 = (TextView) arg1.findViewById(R.id.text1);
			baseHolder.textview2 = (TextView) arg1.findViewById(R.id.text2);
			baseHolder.button1 = (Button) arg1.findViewById(R.id.base_but);
			arg1.setTag(baseHolder);
		}else{
			baseHolder = (BaseHolder) arg1.getTag();
		}
		baseHolder.img.setImageResource((Integer) list.get(arg0).get("img"));
		baseHolder.textview1.setText((String) list.get(arg0).get("te1"));
		baseHolder.textview2.setText((String) list.get(arg0).get("te2"));
		baseHolder.button1.setText((String) list.get(arg0).get("te3"));
		return arg1;
	}
	
	private class BaseHolder{
		ImageView img;
		TextView textview1;
		TextView textview2;
		Button button1;
	}

}

Android Adapter详解(2)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View
Android Adapter Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView
Adapter是用来帮助填充数据的中间桥梁,比如通过它将数据填充到ListView, GridView, Gallery.而andr
1.Adapter设计模式 Android中adapter接口有很多种实现,例如,ArrayAdapter,BaseAdapter,CursorAdap
Android Adapter详解 Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View。因
SimpleAdapter参数说明: public SimpleAdapter (Context context, List<? extends Map<Strin
来自:http://blog.csdn.net/yelbosh/article/details/7831812 BaseAdapter就Android应用程序中经常
BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListVie
Android各种Adapter的用法   同样是一个ListView,可以用不同的 Adapter让它显示出来,比如说最常
Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。 在常见的View(L
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号