天天看點

PullToRefreshListView今日頭條初始頁面 補充

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];  
        }  
    }  
           

.............................................................................................................................................................