Xlistview和ImageLoader

来源:互联网 发布:大数据 技术 图 编辑:程序博客网 时间:2024/06/07 06:56

在清单文件中配置

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

在application中配置
android:name=".Mapp"
在build.grable下配置
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.google.code.gson:gson:2.2.4'
implementation project(':xlistviewlibrary')
//添加
xlistviewlibrary项目
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{    // ImagesUtils imagUtils;    private String NetString="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";    private List<TextBean.NewslistBean> list=new ArrayList<TextBean.NewslistBean>();    private MyAdapter adapter;    private ImageLoader instance;    private XListView xListView;//implements XListView.IXListViewListener    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xListView = (XListView) findViewById(R.id.xlistview);        instance = ImageLoader.getInstance();        getNetData();        adapter = new MyAdapter();        xListView.setAdapter(adapter);        xListView.setPullLoadEnable(true);  //让XListView有上拉加载的功能;        xListView.setXListViewListener(this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了    }    private void getNetData() {        new MyAsyncTask().execute(NetString);    }    private class MyAsyncTask extends AsyncTask<String,Void,String> {        @Override        protected String doInBackground(String... strings) {            return Utils.getNetString(strings[0]);        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson=new Gson();            TextBean json = gson.fromJson(s, TextBean.class);            //得到集合;            List<TextBean.NewslistBean> newslist = json.getNewslist();            //把从网络解析的数据放到adapter使用的集合里;            list.addAll(newslist);            adapter.notifyDataSetChanged();            uiComplete();// 让刷新头 或者刷新底部ui返回;        }    }    private class MyAdapter extends BaseAdapter {        private ViewHolder vh;        private TextView ctime;        private TextView title;        private TextView description;        private ImageView img;        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            if (view==null){                vh = new ViewHolder();                view = View.inflate(MainActivity.this, R.layout.item, null);                view.setTag(vh);            }else{                vh = (ViewHolder) view.getTag();            }            vh.ctime = view.findViewById(R.id.item_ctime);            vh.title = view.findViewById(R.id.item_title);            vh.description = view.findViewById(R.id.item_description);            vh.img = view.findViewById(R.id.item_img);            vh.ctime.setText(list.get(i).getCtime());            vh.title.setText(list.get(i).getTitle());            vh.description.setText(list.get(i).getDescription());            instance.displayImage(list.get(i).getPicUrl(),vh.img, Utils.getDisplayImageOption());            return view;        }    }    class ViewHolder{        TextView ctime;        TextView title;        TextView description;        ImageView img;    }    /**     * 下拉刷新     */    @Override    public void onRefresh() {        list.clear();        getNetData();    }    /**     * 上拉加载     */    @Override    public void onLoadMore() {        getNetData();    }    /**     * 让刷新头 或者刷新底部ui返回;     */    private  void uiComplete(){        xListView.stopRefresh();//停止刷新        xListView.stopLoadMore();//停止上拉加载更多        xListView.setRefreshTime("刚刚");    }}

//main布局
<com.bwie.xlistviewlibrary.View.XListView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/xlistview"    ></com.bwie.xlistviewlibrary.View.XListView>
//子布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal" android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="vertical"        >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="1"            android:layout_marginTop="40px"            android:id="@+id/item_description"            />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="2"            android:layout_marginTop="15px"            android:id="@+id/item_title"            />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="3"            android:layout_marginTop="15px"            android:id="@+id/item_ctime"            />    </LinearLayout>    <ImageView        android:layout_width="200px"        android:layout_height="200px"        android:src="@mipmap/ic_launcher"        android:id="@+id/item_img"        /></LinearLayout>

原创粉丝点击