添加一个library工程,并修改build.gradle
compileSdkVersion 25 buildToolsVersion "25.0.2"targetSdkVersion 25
MainActivity:
public class MainActivity extends AppCompatActivity implements PullToRefreshListView.OnRefreshListener2 { private PullToRefreshListView pull; private int currentPage = 1; private ArrayList<String> list; private HomeAdapter homeAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); getDataforServer(); } private void getDataforServer() { OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder().url("http://v.juhe.cn/weather/index?format=2&cityname=北京&key=e7a94c85b65930fdb88bc0698416287c").build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { if (response.code() == 200) { String str = response.body().string(); Log.d("haha",""+str); Gson gson = new Gson(); Bean bean = gson.fromJson(str, Bean.class); final List<Bean.ResultBean.FutureBean> list = bean.getResult().getFuture(); runOnUiThread(new Runnable() { @Override public void run() { homeAdapter.setData(list); homeAdapter.notifyDataSetChanged(); } }); } else { Log.d("myMessage", "" + response.message()); } } }); } private void initData() { homeAdapter = new HomeAdapter(this); pull.setAdapter(homeAdapter); pull.setMode(PullToRefreshBase.Mode.BOTH); } private void initView() { pull = (PullToRefreshListView) findViewById(R.id.pull); pull.setOnRefreshListener(this); ListView refreshableView = pull.getRefreshableView(); } @Override public void onPullDownToRefresh(PullToRefreshBase refreshView) { refreshData(); } private void refreshData() { currentPage = 1; new Handler().postDelayed(new Runnable() { @Override public void run() { pull.onRefreshComplete(); getDataforServer(); } },2000); } @Override public void onPullUpToRefresh(PullToRefreshBase refreshView) { loadMore(); } private void loadMore() { currentPage++; new Handler().postDelayed(new Runnable() { @Override public void run() { pull.onRefreshComplete(); getDataforServer(); } },2000); } }
HomeAdapter:
public class HomeAdapter extends BaseAdapter { private Context mcontext; private List<Bean.ResultBean.FutureBean> list = new ArrayList<>(); public HomeAdapter(Context context) { this.mcontext = context; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = convertView.inflate(mcontext, R.layout.home_item, null); viewHolder.textView = (TextView) convertView.findViewById(R.id.te); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.textView.setText(list.get(position).getDate()); return convertView; } public void setData(List<Bean.ResultBean.FutureBean> data) { if (data != null) { this.list.addAll(data); } } static class ViewHolder { TextView textView; } }