ListView
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.Arrays;
import java.util.LinkedList;
public class PullListView extends AppCompatActivity {
PullToRefreshListView plistview;
private LinkedList<String> mListItems;
private ArrayAdapter<String> mAdapter;
private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
"Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
"Allgauer Emmentaler" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pull_list_view);
//获取控件
plistview = findViewById(R.id.plistview);
//设置监听
plistview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
//下拉刷新时调用
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
new AsyncTask<Void,Void,String[]>(){
@Override
protected String[] doInBackground(Void... voids) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return mStrings;
}
@Override
protected void onPostExecute(String[] strings) {
//刷新完成后添加数据
mListItems.addFirst("哈哈哈哈哈");
//更新适配器
mAdapter.notifyDataSetChanged();
//刷新完成
plistview.onRefreshComplete();
}
}.execute();
}
});
//拉到底部时调用
plistview.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
Toast.makeText(PullListView.this,"上拉",Toast.LENGTH_LONG).show();
}
});
//获取到pullRefresh里面的listview控件,方便设置适配器
ListView listView = plistview.getRefreshableView();
mListItems = new LinkedList<>();
mListItems.addAll(Arrays.asList(mStrings));
//适配器
// ArrayAdapter 第一个参数表示上下文,第二个参数表示一个包含TextView,
// 用来填充listView的每一行的布局资源ID,第三个参数为ListView的内容。
//ArrayAdapter 接受一个数组或者List作为参数来构建显示ListView
mAdapter = new ArrayAdapter<>(this,R.layout.plist,mListItems);
plistview.setAdapter(mAdapter);
}
}
GridView
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;
import java.util.Arrays;
import java.util.LinkedList;
public class PullGridView extends AppCompatActivity {
PullToRefreshGridView pgridview;
private LinkedList<String> mListItems;
private ArrayAdapter<String> adapter;
private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
"Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
"Allgauer Emmentaler" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pull_grid_view);
pgridview = findViewById(R.id.pgridview);
pgridview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
new AsyncTask<Void,Void,LinkedList<String>>(){
@Override
protected LinkedList<String> doInBackground(Void... voids) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(LinkedList<String> strings) {
//添加数据
mListItems.addFirst("哈哈哈哈哈");
adapter.notifyDataSetChanged();
pgridview.onRefreshComplete();
super.onPostExecute(strings);
}
}.execute();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
new AsyncTask<Void,Void,LinkedList<String>>(){
@Override
protected LinkedList<String> doInBackground(Void... voids) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(LinkedList<String> strings) {
//添加数据
mListItems.addFirst("哈哈哈哈哈");
adapter.notifyDataSetChanged();
pgridview.onRefreshComplete();
super.onPostExecute(strings);
}
}.execute();
}
});
//获取listview控件
GridView gridView = pgridview.getRefreshableView();
mListItems = new LinkedList<>();
mListItems.addAll(Arrays.asList(mStrings));
//适配器
adapter = new ArrayAdapter<String>(this,R.layout.pgridview, mListItems);
pgridview.setAdapter(adapter);
}
}