Android之ArrayAdapter实例(demo)

来源:互联网 发布:C语言干什么的 编辑:程序博客网 时间:2024/06/07 14:49

就在今天上午,我在做一个关于接受服务器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 stublist = 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;@Overrideprotected 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开始的@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long id) {// TODO Auto-generated method stubToast.makeText(MainActivity.this,position+" "+id,Toast.LENGTH_LONG).show();}});}public ArrayList<String> initdata() {// TODO Auto-generated method stublist = new ArrayList<String>();list.add("CQQ1");list.add("CQQ2");list.add("CQQ3"); return list;}}

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

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

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

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

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


0 0
原创粉丝点击