package com.example.helloworld;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MainAdapter extends BaseAdapter{
private List<MainItem> mList;
private LayoutInflater inflater;
public MainAdapter(Context context,List<MainItem> list){
mList = list;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ViewHolder viewHolder;
MainItem item = mList.get(position);
//当convertView为空时,创建一个ViewHolder对象,并将控件的实例都存放在ViewHolder里,然后调用View的setTag()方法,将ViewHolder对象存储在View中。
if (convertView == null) {
view = inflater.inflate(R.layout.main_item, null);
viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) view.findViewById(R.id.imgView);
viewHolder.textView = (TextView) view.findViewById(R.id.tvName);
view.setTag(viewHolder);
}else {
view = convertView;
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.imageView.setImageResource(item.getImagView());
viewHolder.textView.setText(item.getTvName());
return view;
}
//内部类ViewHolder,用于对控件的实例进行缓存。
class ViewHolder{
ImageView imageView;
TextView textView;
}
}
package com.example.helloworld;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ListView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
public class MainActivity extends Activity {
private PullToRefreshListView lV;
private List<MainItem> mListItems;
private MainAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListItems = new ArrayList<MainItem>();
mListItems.add(new MainItem(R.drawable.ic_launcher, "hongyewell"));
lV = (PullToRefreshListView) findViewById(R.id.mylv);
adapter = new MainAdapter(MainActivity.this, mListItems);
lV.setAdapter(adapter);
lV.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Void result) {
MainItem mainItem = new MainItem(R.drawable.ic_launcher, "geek_ymv");
mListItems.add(0,mainItem);
adapter.notifyDataSetChanged();
lV.onRefreshComplete();
};
}.execute();
}
});
}
}
下拉刷新后