super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //设置当前的Activity无Title并且全屏
setContentView(R.layout.main); //所在的Activity采用R.layout下的main布局文件进行布局
final int color1=0xFFC5B5FF;
final int color2=0xFFFFFFFF;
//创建一个list集合,list集合的元素是Map
List<Map<String,Object>> ListItems=new ArrayList<Map<String, Object>>();
for(int i=0;i<names.length;i++){
Map<String,Object> listItem=new HashMap<String,Object>();
listItem.put(“header”,names[i]);
listItem.put(“images”,image[i]);
ListItems.add(listItem); //加入list集合
}
//创建一个SimpleAdapter,因为在使用ListView时需要进行数据适配
SimpleAdapter simpleAdapter=new SimpleAdapter(this,ListItems,R.layout.simple_items,new String[]{“header”,“images”},new int[]{R.id.header,R.id.images});
final ListView list=(ListView)findViewById(R.id.mylist);
//为ListView设置Adapter
list.setAdapter(simpleAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
int flag=0;
System.out.println(names[position]+position+“被单击”);
switch (flag){
case 0:
view.setSelected(true);
CharSequence text=names[position];
int duration=Toast.LENGTH_SHORT;
Toast toast=Toast.makeText(MainActivity.this,text,duration);
toast.show();
flag=1;
break;
case 1:
view.setBackgroundColor(color2);
view.setSelected(false);
CharSequence text1=names[position];
int duration1=Toast.LENGTH_SHORT;
Toast toast1=Toast.makeText(MainActivity.this,text1,duration1);
toast1.show();
flag=0;
break;
}
}
});
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
System.out.println(names[position]+“选中”);
}
public void onNothingSelected(AdapterView<?> parent){
}
});
}
}
二. ListView局部刷新
对ListView有了基本的了解,了解到在Android开发中我们经常会用到listview的数据和界面刷新动作,我们基本上用到的都是Adapter.notifyDataSetChanged()方法。这个方法的原理是利用观察者模式对我们的数据源进行监听,当我们的数据源发生变化的时候,会调用Adapter的getView()方法进行整个界面的刷新。getview()会调用多次,刷新了好多个不需要刷新的item,这样的话相对而言,降低了效率。但是,我们有的情况下是只需要对某个item的数据进行刷新就可以了。如点击下图中的任