Android之ArrayAdapter实例(demo)

就在今天上午,我在做一个关于接受服务器json数据并且将其解析到本地,然后显示在屏幕上,结果因为生疏,以前老是觉得ArrayAdapter太low了,所以看一下便不再去写代码了,然而就在今天我要用它作为Listview的适配器时,我却遇到了出多麻烦,在这里分享给大家,惨痛的教训啊.

首先我先向大家介绍一下关于ArrayAdapter的绑定数据的几种方式;

1.通过数组(不推荐使用,因为不可以动态更新数据)

2.通过动态的java泛型集合(推荐使用,开发时用的比较多)

3.ArrayAdapter自身进行数据绑定

我们来介绍后两种;

1.ArrayAdapter自身进行数据绑定

		adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1);
		adapter.add("cqq");
		adapter.add("cqq1");
		adapter.add("cqq2");
		adapter.add("cqq3");
		listView.setAdapter(adapter);
2.通过动态的java泛型集合

	public ArrayList<String> initdata() {
		// TODO Auto-generated method stub
		list = new ArrayList<String>();
		list.add("CQQ1");
		list.add("CQQ2");
		list.add("CQQ3");
 
		return list;
	}

listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,initdata()));
下面我们附上源码;

package com.example.text1;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private ListView listView;
	private ArrayList<String>  list;
	private ArrayAdapter< String> adapter;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listView = (ListView) findViewById(R.id.listView);
		//listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
				//android.R.layout.simple_list_item_1,initdata()));
		
		adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1);
		adapter.add("cqq");
		adapter.add("cqq1");
		adapter.add("cqq2");
		adapter.add("cqq3");
		listView.setAdapter(adapter);
		
		listView.setOnItemClickListener(new OnItemClickListener() {
			//在这里的position和id都是从0开始的
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int position,
					long id) {
				// TODO Auto-generated method stub
				Toast.makeText(MainActivity.this,position+" "+id,Toast.LENGTH_LONG).show();
			}
		});
	}
	
	public ArrayList<String> initdata() {
		// TODO Auto-generated method stub
		list = new ArrayList<String>();
		list.add("CQQ1");
		list.add("CQQ2");
		list.add("CQQ3");
 
		return list;
	}

}

最后我给大家分型一下我今天的教训:

1.不要跟模拟器过不去,如果不行,果断重启或者重新配置

2.以前的知识点,要进场拿来运用

3.自己不要再一个很小的方面死扣,小心阴沟里翻船

4.多动手,希望和大家一起进步。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值