Layout.xml
[html] view plain copy
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/imageview"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@mipmap/ic_launcher"
android:layout_below="@+id/textview"/>
</RelativeLayout>
Bean02.java
[java] view plain copy
public class Bean02 {
private String title;
private String img;
public Bean02(String title, String img) {
this.title = title;
this.img = img;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
}
Fragment02.java
[java] view plain copy
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import activity.example.com.baikaijun20170918.MainActivity;
import activity.example.com.baikaijun20170918.R;
import activity.example.com.baikaijun20170918.bean.Bean;
import activity.example.com.baikaijun20170918.bean.Bean02;
public class Fragment2 extends Fragment{
private View vieww;
private PullToRefreshListView pulltorefresh;
List<Bean02> list;
private Myadapter myadapter;
int i=1;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
vieww = inflater.inflate(R.layout.ff, container, false);
return vieww;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
pulltorefresh = (PullToRefreshListView)vieww.findViewById(R.id.pulltorefresh);
pulltorefresh.setMode(PullToRefreshBase.Mode.BOTH);
list = new ArrayList<>();
myadapter = new Myadapter();
pulltorefresh.setAdapter(myadapter);
new Myasynctask().execute("http://gank.io/api/data/Android/10/1");
pulltorefresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
list.clear();
i=1;
new Myasynctask().execute("http://gank.io/api/data/Android/10/1");
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
i++;
new Myasynctask().execute("http://gank.io/api/data/Android/10/"+i);
}
});
}
class Myasynctask extends AsyncTask<String,Void,String>{
private StringBuilder builder;
@Override
protected String doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int code = urlConnection.getResponseCode();
if(code==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(inputStream));
builder = new StringBuilder();
String s = "";
//拼接
while((s=bf.readLine())!=null){
builder.append(s);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.ResultsBean> results = bean.getResults();
for (int i=0;i<results.size();i++){
//Log.d("TAG","sssssss"+results.get(i).getImages().get(0));
list.add(new Bean02(results.get(i).getDesc(),"http://img.gank.io/9f51b7bc-73d3-4ce4-bd59-c61cb0c64325"));
}
myadapter.notifyDataSetChanged();
pulltorefresh.onRefreshComplete();
}
}
class Myadapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
class ViewHowder{
TextView tv;
ImageView img;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Bean02 bean02 = list.get(i);
ViewHowder howder = null;
if(view==null){
howder = new ViewHowder();
view = View.inflate(getActivity(),R.layout.layout,null);
howder.tv = view.findViewById(R.id.textview);
howder.img = view.findViewById(R.id.imageview);
view.setTag(howder);
}else{
howder = (ViewHowder) view.getTag();
}
howder.tv.setText(bean02.getTitle());
ImageLoader.getInstance().displayImage(bean02.getImg(),howder.img);
return view;
}
}
}
...........................................................................................................................................................
无关联
[java] view plain copy
private PullToRefreshListView plv;
private LinkedList<String> mListItems;
private String [] strings = new String[]{"好","成龙","李连杰","黄晓明","成吉思汗","曹操","吕布","黄忠"};
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
plv = (PullToRefreshListView) findViewById(R.id.plv);
plv.setMode(PullToRefreshBase.Mode.BOTH);
mListItems = new LinkedList<>();
mListItems.addAll(Arrays.asList(strings));
mAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, mListItems);
plv.setAdapter(mAdapter);
plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
new MAsyncTask().execute();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
new MAsyncTask2().execute();
}
});
}
private class MAsyncTask extends AsyncTask<Void,Void,String[]>{
@Override
protected void onPostExecute(String[] strings) {
super.onPostExecute(strings);
mListItems.addFirst("孙尚香");
mAdapter.notifyDataSetChanged();
plv.onRefreshComplete();
}
@Override
protected String[] doInBackground(Void... params) {
new Thread(){
@Override
public void run() {
super.run();
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
return new String[0];
}
}
.............................................................................................................................................................