package zhangchaofei.rikao0822; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.widget.BaseAdapter; import android.widget.TextView; import com.google.gson.Gson; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends Activity implements XListView.IXListViewListener{ private XListView mylist; private List<Bean.ResultsBean> list=new ArrayList<>(); private int limit =5; private int page=1; private Mybase adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mylist=findViewById(R.id.mylist); adapter=new Mybase(); init("http://gank.io/api/history/content/"+limit+"/"+page); mylist.setPullRefreshEnable(true); mylist.setPullLoadEnable(true); mylist.setXListViewListener(this); mylist.setAdapter(adapter); } private void init(String path) { new AsyncTask<String, Void, String>() { @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Bean bean=gson.fromJson(s,Bean.class); list=bean.getResults(); if (list!=null&&list.size()>0){ if (page>1){ adapter.addData(list); }else{ adapter.upData(list); } mylist.stopRefresh(); mylist.stopLoadMore(); } } @Override protected String doInBackground(String... strings) { String path=strings[0]; try { URL url=new URL(path); HttpURLConnection con= (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setConnectTimeout(3000); int code=con.getResponseCode(); if (code==200){ InputStream is=con.getInputStream(); String json=Toos.work(is); System.out.println(json); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } @Override public void onRefresh() { page=1; init("http://gank.io/api/history/content/"+limit+"/"+page); } @Override public void onLoadMore() { page++; init("http://gank.io/api/history/content/"+limit+"/"+page); } class Mybase extends BaseAdapter{ private List<Bean.ResultsBean> beanList=new ArrayList<>(); public void addData(List<Bean.ResultsBean> beanList){ this.beanList.addAll(beanList); notifyDataSetChanged(); } public void upData(List<Bean.ResultsBean> beanList){ this.beanList.clear(); addData(beanList); } @Override public int getCount() { return beanList.size(); } @Override public Object getItem(int i) { return beanList.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if (view==null){ holder=new ViewHolder(); view=View.inflate(MainActivity.this,R.layout.item,null); holder.te1=view.findViewById(R.id.textView); holder.web=view.findViewById(R.id.web); view.setTag(holder); }else{ holder= (ViewHolder) view.getTag(); } Bean.ResultsBean resultsBean=beanList.get(i); if (resultsBean.getTitle()!=null){ holder.te1.setText(resultsBean.getTitle()); } holder.web.setVisibility(View.GONE); return view; } class ViewHolder{ TextView te1; WebView web; } } }
Xlistview
最新推荐文章于 2019-01-09 20:30:06 发布