您的位置:首页 > 其它

XListView多条目加载

2018-01-18 10:52 288 查看
/*** 导 xlistview 的代码   *导依赖(架包)**/
<com.bwie.xlistviewlibrary.View.XListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/dxlv"/>
//主页面
importandroid.content.Intent;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import com.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";private int p = 1;private XListView dxlv;private List<User.DataBean> dlist = new ArrayList<User.DataBean>();private DtmAdapter dtmAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dxlv = findViewById(R.id.dxlv);dxlv.setPullLoadEnable(true);dxlv.setPullRefreshEnable(true);dxlv.setXListViewListener(this);dtmAdapter = new DtmAdapter(MainActivity.this,dlist);dxlv.setAdapter(dtmAdapter);initdx(url+p);stopdx();//点击跳转到百度(WebView)dxlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Intent intent = new Intent(MainActivity.this,Main2Activity.class);startActivity(intent);}});}private void initdx(String s) {new DtmAsyTast().execute(s);}@Overridepublic void onRefresh() {dlist.clear();initdx(url+p);stopdx();}@Overridepublic void onLoadMore() {p++;initdx(url+p);stopdx();}private class DtmAsyTast extends AsyncTask<String,Void,String> {@Overrideprotected String doInBackground(String... strings) {Util util = new Util();String getjson = util.getjson(url);return getjson;}@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);Gson gson = new Gson();User user = gson.fromJson(s, User.class);List<User.DataBean> data = user.getData();dlist.addAll(data);dtmAdapter.notifyDataSetChanged();}}private void stopdx() {dxlv.stopRefresh();dxlv.stopLoadMore();dxlv.setRefreshTime("不久前");}}
//适配器
importandroid.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;
class DtmAdapter extends BaseAdapter{private Context context;private List<User.DataBean> dlist;private final int tt = 0;private final int ss =1;public DtmAdapter(Context context, List<User.DataBean> dlist) {this.context = context;this.dlist = dlist;}@Overridepublic int getCount() {return dlist.size();}@Overridepublic Object getItem(int i) {return dlist.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic int getItemViewType(int position) {return position%getViewTypeCount();}@Overridepublic int getViewTypeCount() {return 2;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {int ivt = getItemViewType(i);ViewHolder holder = new ViewHolder();if (view == null){switch (ivt){case tt:view = View.inflate(context,R.layout.item,null);holder.img = view.findViewById(R.id.img);holder.text1 = view.findViewById(R.id.text1);break;case ss:view = View.inflate(context,R.layout.item2,null);holder.text2 = view.findViewById(R.id.text2);break;}view.setTag(holder);}else {holder = (ViewHolder) view.getTag();switch (ivt){case tt:holder.text1.setText(dlist.get(i).getNews_title());ImageLoader.getInstance().displayImage(dlist.get(i).getPic_url(),holder.img);break;case ss:holder.text2.setText(dlist.get(i).getNews_summary());break;}}return view;}class ViewHolder{private ImageView img;private TextView text1,text2;}}
/**
*图片加载
*<application
*    android:name=".Mapp"
**/
importandroid.app.Application;import android.os.Environment;import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;import com.nostra13.universalimageloader.core.assist.QueueProcessingType;import java.io.File;
public class Mapp extends Application {File cacheFile = new File(Environment.getExternalStorageDirectory() + "/" + "image");@Overridepublic void onCreate() {super.onCreate();//初始化组件,链式开发思想,整个框架的参数初始化配置//imageLoader的全局配置ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽.diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个.tasksProcessingOrder(QueueProcessingType.FIFO) // default.denyCacheImageMultipleSizesInMemory().memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现.memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值.memoryCacheSizePercentage(13) // default.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值.diskCacheFileCount(100)  // 可以缓存的文件数量.diskCache(new UnlimitedDiskCache(cacheFile))//自定义缓存目录// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密.diskCacheFileNameGenerator(new HashCodeFileNameGenerator()).defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default.writeDebugLogs() // 打印debug log.build();ImageLoader.getInstance().init(configuration);}}
//数据网络连接
importjava.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;a80dimport java.net.URL;
class Util {public String getjson(String url){URL url1 = null;HttpURLConnection connection = null;String str = "";try {url1 = new URL(url);connection = (HttpURLConnection) url1.openConnection();connection.setConnectTimeout(8000);connection.setReadTimeout(8000);int code = connection.getResponseCode();if (code == 200){InputStream inputStream = connection.getInputStream();byte[] b  =new byte[1024];int len = 0;while ((len = inputStream.read(b))!=-1){str+=new String(b,0,len);}}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return str;}}
//跳转其他网页(例:百度)---布局
<WebViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/web"/>
//网页连接页面
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.webkit.WebView;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);WebView web = findViewById(R.id.web);web.loadUrl("https://www.baidu.com/");}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: