赞
踩
上拉下拉&获取网络数据
public class MainActivity extends AppCompatActivity { private XlistView xlv; private Handler handler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = findViewById(R.id.xlv); //设置上拉加载 xlv.setPullLoadEnable(true); //设置下拉刷新 xlv.setPullRefreshEnable(true); //设置监听 xlv.setXListViewListener(new XlistView.IXListViewListener() { @Override public void onRefresh() { //2秒停止刷新 //获取系统时间 getRefreshTime(); //获取网络数据 getServerData(); handler.postDelayed(new Runnable() { @Override public void run() { xlv.stopRefresh(); } }, 2000); } @Override public void onLoadMore() { //2秒停止加载 //获取网络数据 getServerData(); handler.postDelayed(new Runnable() { @Override public void run() { xlv.stopLoadMore(); } }, 2000); } }); //获取网络数据 getServerData(); //获取当前系统时间 getRefreshTime(); } //获取当前系统时间 private void getRefreshTime() { long time = System.currentTimeMillis(); Date date = new Date(time); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd日 HH:mm:ss"); String s = simpleDateFormat.format(date); xlv.setRefreshTime(s); } //默认获取数据 private void getServerData() { MyAsyncTask task = new MyAsyncTask(); task.execute(); } private class MyAsyncTask extends AsyncTask<String, Integer, String> { @Override protected String doInBackground(String... strings) { String path = "http://www.xieast.com/api/news/news.php?page=1"; try { URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); if (conn.getResponseCode() == 200) { InputStream inputStream = conn.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inputStream.read(buffer)) != -1) { bos.write(buffer, 0, len); } bos.close(); inputStream.close(); String json = bos.toString(); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); News news = gson.fromJson(s, News.class); List<News.DataBean> data = news.getData(); MyAdapter adapter = new MyAdapter(MainActivity.this, data); xlv.setAdapter(adapter); } }}
图片配置
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//全局配置详细自己配置
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.build();
//初始化
ImageLoader.getInstance().init(configuration);
}
}
适配器&listview优化
public class MyAdapter extends BaseAdapter { private final static int TYPE_ONE = 0; private final static int TYPE_TWO = 1; private final static int TYPE_THREE = 2; private Context context; private ArrayList<News> list; public MyAdapter(Context context, ArrayList<News> list) { this.context = context; this.list = list; } @Override public int getViewTypeCount() { return 3; } @Override public int getItemViewType(int position) { if (position%3==0) { return TYPE_ONE; } else if (position%3==1) { return TYPE_TWO; } else { return TYPE_THREE; } } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHandler1 viewHandler1 = null; ViewHandler2 viewHandler2 = null; ViewHandler3 viewHandler3 = null; int type = getItemViewType(position); if (convertView == null) { if (type == TYPE_ONE) { convertView = View.inflate(context, R.layout.item1, null); viewHandler3 = new ViewHandler3(); viewHandler3.text3 = convertView.findViewById(R.id.text3); viewHandler3.img3 = convertView.findViewById(R.id.img3); viewHandler3.img33 = convertView.findViewById(R.id.img33); viewHandler3.img333 = convertView.findViewById(R.id.img333); convertView.setTag(viewHandler3); } else if (type == TYPE_TWO) { convertView = View.inflate(context, R.layout.item2, null); viewHandler2 = new ViewHandler2(); viewHandler2.text2 = convertView.findViewById(R.id.text2); viewHandler2.img2 = convertView.findViewById(R.id.img2); viewHandler2.img22 = convertView.findViewById(R.id.img22); convertView.setTag(viewHandler2); } else { convertView = View.inflate(context, R.layout.item3, null); viewHandler1 = new ViewHandler1(); viewHandler1.text1 = convertView.findViewById(R.id.text1); viewHandler1.img1 = convertView.findViewById(R.id.img1); convertView.setTag(viewHandler1); } } else { if (type == TYPE_ONE) { viewHandler3 = (ViewHandler3) convertView.getTag(); } else if (type == TYPE_TWO) { viewHandler2 = (ViewHandler2) convertView.getTag(); } else { viewHandler1 = (ViewHandler1) convertView.getTag(); } } News news = list.get(position); if (type == TYPE_ONE) { viewHandler3.text3.setText(news.getTitle()); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s(), viewHandler3.img3); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s02(), viewHandler3.img33); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s03(), viewHandler3.img333 ); } else if (type == TYPE_TWO) { viewHandler2.text2.setText(news.getTitle()); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s(), viewHandler2.img2); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s02(), viewHandler2.img22); } else { viewHandler1.text1.setText(news.getTitle()); ImageLoader.getInstance().displayImage(news.getThumbnail_pic_s(), viewHandler1.img1); } return convertView; } class ViewHandler1 { private ImageView img1; private TextView text1; } class ViewHandler2 { private ImageView img2; private ImageView img22; private TextView text2; } class ViewHandler3 { private ImageView img3; private ImageView img33; private ImageView img333; private TextView text3; }}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。