package com.example.dragListView; import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.SimpleAdapter; import android.widget.TextView; import com.example.actionbar.R; public class MainActivity extends Activity implements FlushOnPullListView.OnRefreshLoadingMoreListener { private FlushOnPullListView dlv_main;// 下拉ListView private MyAdapter adapter; private final static int DRAG_INDEX = 1;// 下拉刷新标识 private final static int LOADMORE_INDEX = 2;// 加载更多标识 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); dlv_main = (FlushOnPullListView) findViewById(R.id.dlv_main); adapter = new MyAdapter(this); dlv_main.setAdapter(adapter); dlv_main.setOnRefreshListener(this); } /*** * * @author jia */ class MyAdapter extends BaseAdapter { private Context context; private LayoutInflater inflater; public MyAdapter(Context context) { super(); this.context = context; inflater = LayoutInflater.from(context); } @Override public int getCount() { return 10; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.item, null); holder.textView = (TextView) convertView .findViewById(R.id.tv_tripline_content_item_1); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } return convertView; } } class ViewHolder { public TextView textView; public TextView textView2; } /*** * 执行类 异步 * * @author zhangjia * */ class MyAsyncTask extends AsyncTask<Void, Void, Void> { private Context context; private int index;// 用于判断是下拉刷新还是点击加载更多 public MyAsyncTask(Context context, int index) { this.context = context; this.index = index; } @Override protected Void doInBackground(Void... params) { try { Thread.sleep(2000); } catch (InterruptedException e1) { e1.printStackTrace(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); if (index == DRAG_INDEX) dlv_main.onRefreshComplete(); else if (index == LOADMORE_INDEX) dlv_main.onLoadMoreComplete(false); } } /*** * 下拉刷新 */ @Override public void onRefresh() { new MyAsyncTask(this, DRAG_INDEX).execute(); } /*** * 点击加载更多 */ @Override public void onLoadMore() { new MyAsyncTask(this, LOADMORE_INDEX).execute(); } }