您的位置:首页 > 其它

ArrayAdapter(数组适配器)与SimpleAdapter(简单适配器)

2015-07-30 14:27 399 查看
ArrayAdapter数组适配器常用语搭建简单的数组列表等布局,SimpleAdapter简单适配器的布局文件可以自己定义。

public class MainActivity extends ActionBarActivity implements OnItemClickListener,OnScrollListener{
	ListView listView1;
	
	List<Map<String,Object>> datalist;
	ArrayAdapter<String> Adapter;
	SimpleAdapter Adapter2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listView1=(ListView) findViewById(R.id.listView1);
		//创建数组适配器的数据源
		//创建简单适配器数据源
		String list[]={"第一行","第二行","第三行","第四行"};
		datalist=new ArrayList<Map<String,Object>>();
		//创建数组适配器
		//创建简单适配器
		/*
		 * 数组适配器里的三个参数分别是上下文,简单布局文件,数据源。
		 * 简单适配器参数分别为上下文,数据源(一般都是泛型集合),自己定义的布局文件,for是数据源键值对的名称,to是与for相对应的ID地址
		 */
		Adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
		Adapter2=new SimpleAdapter(this, getdata(), R.layout.item, new String[]{"pic","text"}, new int[]{R.id.img,R.id.tv});
		//为listView1绑定适配器
		//listView1.setAdapter(Adapter);
		listView1.setAdapter(Adapter2);
		//注册监听器
		listView1.setOnItemClickListener(this);
		listView1.setOnScrollListener(this);
	}
	//为简单适配器数据源添加内容
	private List<Map<String,Object>> getdata()
	{
		for(int i=0;i<15;i++)
		{
			Map<String,Object> map=new HashMap<String,Object>();
			map.put("pic", R.drawable.ic_launcher);
			map.put("text", "第"+i+"行");
			datalist.add(map);
		}
		return datalist;
	}
	@Override
	public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void onScrollStateChanged(AbsListView arg0, int ScrollState) {
		// TODO Auto-generated method stub
		//ScrollState监测下拉状态
		switch(ScrollState)
		{
		case SCROLL_STATE_FLING://下拉形成惯性继续滑动
			//为视图增加一个条目
			Map<String,Object> map=new HashMap<String,Object>();
			map.put("pic", R.drawable.ic_launcher);
			map.put("text", "新增条目");
			datalist.add(map);
			//刷新视图
			Adapter2.notifyDataSetChanged();
			break;
		case SCROLL_STATE_IDLE://视图已经停止滑动
			break;
		case SCROLL_STATE_TOUCH_SCROLL://下拉中,手指没离开屏幕
			break;
		}
	}
	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
		// TODO Auto-generated method stub
		//获取点击项内容
		String text=listView1.getItemAtPosition(position)+"";
		Toast.makeText(MainActivity.this,"position:"+position+"text:"+text,Toast.LENGTH_SHORT).show();
	}

}


自定义的布局文件Item

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    
<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img"
    android:src="@drawable/ic_launcher"/>
<TextView 
   
    android:id="@+id/tv"
    android:text="nihao"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

</LinearLayout>
数组适配器的视图



简单适配器



添加OnItemClickListener监听器操作



添加OnScrollListener操作

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: