class MyAdapter extends ArrayAdapter<String> {
private int mResource;
public MyAdapter(Context context, int textViewResourceId,
String[] objects) {
super(context, textViewResourceId, objects);
arrays = objects;
mResource = textViewResourceId;
mInflater = LayoutInflater.from(ListViewRefreshActivity.this);
// TODO Auto-generated constructor stub
}
String[] arrays ;
private LayoutInflater mInflater;
@Override
public int getCount() {
// TODO Auto-generated method stub
return arrays.length;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return super.getItemId(position);
}
@Override
public String getItem(int position) {
// TODO Auto-generated method stub
return super.getItem(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView view;
// TODO Auto-generated method stub
if(convertView == null) {
view = (TextView)mInflater.inflate(mResource, parent,false);
}else {
view = (TextView)convertView;
}
view.setText(arrays[position].toString());
return view;
}
public void addDatas(String[] datas) {
String[] newArrays = new String[arrays.length+datas.length];
for(int i=0;i<arrays.length;i++) {
newArrays[i] = arrays[i];
}
for(int i=0;i<datas.length;i++) {
newArrays[arrays.length+i] = datas[i];
}
arrays = newArrays;
notifyDataSetChanged();
}
}
到时候你只要调用adapter.addDatas方法就可以了。如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
String[] result = data.getStringArrayExtra("arrays");
adapter.addDatas(result);
}
实现的效果是,在list中增加几个item,当然你也可以根据需要更改逻辑,从而达到想要的效果,比如,替换新的item或者删除item,这都需要在自定义的adapter中实现。
原文:http://www.cnblogs.com/liuyang-love/p/android.html