今日头条_部分

 






package com.bwei.gepeng3;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements TextView.OnClickListener{

    private HorizontalScrollView hzs;
    private LinearLayout ll;
    private ViewPager vp;

    String[] title=new String[]{"福利","安卓","苹果","视频","拓展","前端","全部"};

    List<TextView> listtv=new ArrayList<>();
    private FragmentAdapte adapte;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        initView();

        //添加textView
        for (int i = 0; i <title.length ; i++) {
            TextView textView = new TextView(MainActivity.this);
            textView.setText(title[i]);
            textView.setTextSize(25);
            textView.setId(i+10000);
            textView.setOnClickListener(MainActivity.this);
            //设置颜色
            if(i==0){
                textView.setTextColor(Color.RED);
            }else{
                textView.setTextColor(Color.BLACK);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">


    <com.example.xx.xlist_library.view.XListView
        android:id="@+id/xlv"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    </com.example.xx.xlist_library.view.XListView>

</LinearLayout>



} LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20,10,20,10); ll.addView(textView,params); listtv.add(textView); } //设置适配器 adapte = new FragmentAdapte(getSupportFragmentManager()); vp.setAdapter(adapte); //viewpage监听 vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { for (int i = 0; i <listtv.size() ; i++) { if(position==i){ listtv.get(i).setTextColor(Color.RED); }else{ listtv.get(i).setTextColor(Color.BLACK); } } //移动 TextView textView = listtv.get(position); int width = textView.getWidth(); hzs.scrollTo((width+20)*position,0); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } //初始化控件 private void initView() { hzs = (HorizontalScrollView) findViewById(R.id.hzs); ll = (LinearLayout) findViewById(R.id.ll); vp = (ViewPager) findViewById(R.id.vp); } //适配器 class FragmentAdapte extends FragmentPagerAdapter{ public FragmentAdapte(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return Frag.getFrag(position); } @Override public int getCount() { return listtv.size(); } } //title点击事件 @Override public void onClick(View view) { int id = view.getId(); vp.setCurrentItem(id-10000); }}

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">


    <com.example.xx.xlist_library.view.XListView
        android:id="@+id/xlv"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    </com.example.xx.xlist_library.view.XListView>

</LinearLayout>




package com.bwei.gepeng3;

import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.xx.xlist_library.view.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;



public class Frag extends Fragment implements XListView.IXListViewListener{

    private View view;

    List<JsonBean.ResultsBean> results=new ArrayList<>();


    int page=1;
    String[] title=new String[]{"福利","Android","iOS","休息视频","拓展资源","前端","all"};
    //String url="http://gank.io/api/data/数据类型/10/"+page;
    private XListView xlv;
    private Base base;
    private int position;


    public static Fragment getFrag(int position){
        Frag frag = new Frag();
        Bundle bundle = new Bundle();
        bundle.putInt("position",position);
        frag.setArguments(bundle);

        return frag;
    }


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //加载布局
        view = inflater.inflate(R.layout.frag, container, false);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        xlv = (XListView)view.findViewById(R.id.xlv);
        xlv.setXListViewListener(this);
        xlv.setPullLoadEnable(true);
        xlv.setPullLoadEnable(true);

        position = (int) getArguments().get("position");

        base = new Base();

        new StringAsyncTask().execute("http://gank.io/api/data/"+ URLEncoder.encode(title[position])+"/10/"+page);
        //new StringAsyncTask().execute("http://gank.io/api/data/"+title[position]+"/10/"+page);
    }

    //String
        class StringAsyncTask extends AsyncTask<String,Void,String> {

            @Override
            protected String doInBackground(String... strings) {
                return new Utils().getJson(strings[0]);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);

                Gson gson = new Gson();
                JsonBean jsonBean = gson.fromJson(s, JsonBean.class);

                results = jsonBean.getResults();
                xlv.setAdapter(base);

                /*for (int i = 0; i <jsonBean.getResult().getRows().size() ; i++) {
                    String address = jsonBean.getResult().getRows().get(i).getInfo().getAddress();
                    String default_image = jsonBean.getResult().getRows().get(i).getInfo().getDefault_image();
                    Homes homes = new Homes(address, default_image);
                    lists.add(homes);
                }*/
                //xlv.setAdapter(base);
            }
        }
    //String
    class StringAsyncTask1 extends AsyncTask<String,Void,String> {

        @Override
        protected String doInBackground(String... strings) {
            return new Utils().getJson(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);

            Gson gson = new Gson();
            JsonBean jsonBean = gson.fromJson(s, JsonBean.class);

            List<JsonBean.ResultsBean> r = jsonBean.getResults();
            for (JsonBean.ResultsBean w: r) {
                results.add(w);
            }
            base.notifyDataSetChanged();
        }
    }


     //适配器
         class Base extends BaseAdapter {
             @Override
             public int getCount() {
                 return results.size();
             }

             @Override
             public Object getItem(int i) {
                 return results.get(i);
             }

             @Override
             public long getItemId(int i) {
                 return i;
             }

             @Override
             public View getView(int i, View view, ViewGroup viewGroup) {
                 ViewHolder vh;
                 if(view==null){
                     vh = new ViewHolder();
                     view= View.inflate(getActivity(), R.layout.list, null);
                     vh.img=(ImageView)view.findViewById(R.id.img);
                     vh.tv=(TextView)view.findViewById(R.id.tv);

                     view.setTag(vh);
                 }else{
                     vh = (ViewHolder) view.getTag();
                 }
                 JsonBean.ResultsBean resultsBean = results.get(i);

                 vh.tv.setText(resultsBean.getDesc());
                 //显示图片的配置
                 DisplayImageOptions options = new DisplayImageOptions.Builder()
                         .showImageOnLoading(R.mipmap.ic_launcher)
                         .showImageOnFail(R.mipmap.ic_launcher)
                         .bitmapConfig(Bitmap.Config.RGB_565)
                         .build();

                 ImageLoader.getInstance().displayImage(resultsBean.getUrl(), vh.img, options);


                 return view;

             }

             class ViewHolder{
                 ImageView img;
                 TextView tv;
             }

         }

    Handler handler=new Handler();
    /**
     * 下拉刷新,
     */
    @Override
    public void onRefresh() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                results.clear();
                page=1;
                new StringAsyncTask1().execute("http://gank.io/api/data/"+ URLEncoder.encode(title[position])+"/10/"+page);
                onLoad();
            }
        },1000);

    }
    /**
     * 上拉加载,
     */
    @Override
    public void onLoadMore() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //results.clear();
                page++;
                new StringAsyncTask1().execute("http://gank.io/api/data/"+ URLEncoder.encode(title[position])+"/10/"+page);
                onLoad();
            }
        },1000);
    }

    /**
     * 停止刷新,
     */
    private void onLoad() {
        xlv.stopRefresh();
        xlv.stopLoadMore();
        xlv.setRefreshTime("刚刚");
    }
}





<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">


    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView" />

    <ImageView
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        app:srcCompat="@mipmap/ic_launcher"
        android:layout_weight="0.21" />
</LinearLayout>




package com.bwei.gepeng3;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class Utils {
    public String getJson(String u){
            try {
                //定义一个url对象
                URL url = new URL(u);
                //通过url打开连接;
                HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
                //获取响应码
                int responseCode = urlConnection.getResponseCode();
                //判断是否成功进入链接  即 响应码为 200  成功加载
                if(responseCode==200){
                    //获取服务器返回的数据    都是以流的形式;
                    InputStream inputStream = urlConnection.getInputStream();
                    //包装为BufferedReader
                    BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                    StringBuilder sb = new StringBuilder();
                    String str = "";
                    while((str=br.readLine())!=null){
                        sb.append(str);
                    }

                    return sb.toString();
                }

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();








package com.bwei.gepeng3;

import java.util.List;


public class JsonBean {


    /**
     * error : false
     * results : [{"_id":"59b7a98e421aa911847a0392","createdAt":"2017-09-12T17:31:58.794Z","desc":"ViewStub学习","images":["http://img.gank.io/9f51b7bc-73d3-4ce4-bd59-c61cb0c64325"],"publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"http://rkhcy.github.io/2017/09/12/ViewStub%E5%AD%A6%E4%B9%A0/","used":true,"who":"HuYounger"},{"_id":"59b7d963421aa911847a0394","createdAt":"2017-09-12T20:56:03.184Z","desc":"基于Snowflake算法而写的一种unique id生成器","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/zjutkz/ASnowflake","used":true},{"_id":"59b8ad56421aa911878707ed","createdAt":"2017-09-13T12:00:22.260Z","desc":"看我逆向小米rom层应用做碎片化适配","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247486906&idx=1&sn=d6f473abffdea7b2ece6f6bb1f72e084","used":true,"who":"陈宇明"},{"_id":"59b9dfc1421aa9118c8262c1","createdAt":"2017-09-14T09:47:45.123Z","desc":"一个用 Kotlin 写的查单词 idea 插件","images":["http://img.gank.io/4939784c-eea2-4b60-9c7a-d1b4d9f9c8b5"],"publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/jungletian/BreakWords","used":true,"who":"ZhangTitanjum"},{"_id":"59ba01b6421aa911878707f5","createdAt":"2017-09-14T12:12:38.108Z","desc":"Floo 开源了,一个支持 AOP、栈控制、跨页面带信、和动态变更映射的 URL 路由","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/drakeet/Floo","used":true,"who":"drakeet"},{"_id":"59b667cf421aa9118887ac12","createdAt":"2017-09-11T18:39:11.631Z","desc":"用少量Rxjava代码,为retrofit添加退避重试功能","publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"http://www.jianshu.com/p/fca90d0da2b5","used":true,"who":"小鄧子"},{"_id":"59b673ef421aa9118887ac13","createdAt":"2017-09-11T19:30:55.50Z","desc":"Android 端基于 OpenCV 的边框识别功能","publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"https://pqpo.me/2017/09/11/opencv-border-recognition/","used":true,"who":"Linmin Qiu"},{"_id":"59b69738421aa9118c8262ad","createdAt":"2017-09-11T22:01:28.352Z","desc":"用ContentProvider初始化你的库","images":["http://img.gank.io/3b0b193d-6abf-4714-9d5a-5508404666f4"],"publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"http://zjutkz.net/2017/09/11/%E4%B8%80%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7%E2%80%94%E2%80%94%E4%BD%BF%E7%94%A8ContentProvider%E5%88%9D%E5%A7%8B%E5%8C%96%E4%BD%A0%E7%9A%84Library/","used":true},{"_id":"5996c673421aa96729c57262","createdAt":"2017-08-18T18:50:27.254Z","desc":"UiAutomator2.0升级填坑记","publishedAt":"2017-09-07T13:25:26.977Z","source":"web","type":"Android","url":"http://skyseraph.com/2017/06/04/Android/UiAutomator2.0%E5%8D%87%E7%BA%A7%E5%A1%AB%E5%9D%91%E8%AE%B0/","used":true,"who":"SkySeraph"},{"_id":"59a37311421aa901bcb7dbb2","createdAt":"2017-08-28T09:34:09.768Z","desc":"Scrum:官僚者们的游戏","publishedAt":"2017-09-07T13:25:26.977Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247486650&idx=1&sn=9c6e2e0fd5780aab2bcb02b823e7316e","used":true,"who":"陈宇明"}]
     */

    private boolean error;
    private List<ResultsBean> results;

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public List<ResultsBean> getResults() {
        return results;
    }

    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }

    public static class ResultsBean {
        /**
         * _id : 59b7a98e421aa911847a0392
         * createdAt : 2017-09-12T17:31:58.794Z
         * desc : ViewStub学习
         * images : ["http://img.gank.io/9f51b7bc-73d3-4ce4-bd59-c61cb0c64325"]
         * publishedAt : 2017-09-14T16:36:51.63Z
         * source : web
         * type : Android
         * url : http://rkhcy.github.io/2017/09/12/ViewStub%E5%AD%A6%E4%B9%A0/
         * used : true
         * who : HuYounger
         */

        private String _id;
        private String createdAt;
        private String desc;
        private String publishedAt;
        private String source;
        private String type;
        private String url;
        private boolean used;
        private String who;
        private List<String> images;

        public String get_id() {
            return _id;
        }

        public void set_id(String _id) {
            this._id = _id;
        }

        public String getCreatedAt() {
            return createdAt;
        }

        public void setCreatedAt(String createdAt) {
            this.createdAt = createdAt;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getPublishedAt() {
            return publishedAt;
        }

        public void setPublishedAt(String publishedAt) {
            this.publishedAt = publishedAt;
        }

        public String getSource() {
            return source;
        }

        public void setSource(String source) {
            this.source = source;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public boolean isUsed() {
            return used;
        }

        public void setUsed(boolean used) {
            this.used = used;
        }

        public String getWho() {
            return who;
        }

        public void setWho(String who) {
            this.who = who;
        }

        public List<String> getImages() {
            return images;
        }

        public void setImages(List<String> images) {
            this.images = images;
        }
    }
}

} return null; }}


package com.bwei.gepeng3;

import android.app.Application;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;


public class App extends Application{

    @Override
    public void onCreate() {
        super.onCreate();

        //配置
        ImageLoaderConfiguration aDefault = ImageLoaderConfiguration.createDefault(this);
        //初始化
        ImageLoader.getInstance().init(aDefault);

    }
}






package com.bwei.gepeng3;

import java.util.List;


public class JsonBean {


    /**
     * error : false
     * results : [{"_id":"59b7a98e421aa911847a0392","createdAt":"2017-09-12T17:31:58.794Z","desc":"ViewStub学习","images":["http://img.gank.io/9f51b7bc-73d3-4ce4-bd59-c61cb0c64325"],"publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"http://rkhcy.github.io/2017/09/12/ViewStub%E5%AD%A6%E4%B9%A0/","used":true,"who":"HuYounger"},{"_id":"59b7d963421aa911847a0394","createdAt":"2017-09-12T20:56:03.184Z","desc":"基于Snowflake算法而写的一种unique id生成器","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/zjutkz/ASnowflake","used":true},{"_id":"59b8ad56421aa911878707ed","createdAt":"2017-09-13T12:00:22.260Z","desc":"看我逆向小米rom层应用做碎片化适配","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247486906&idx=1&sn=d6f473abffdea7b2ece6f6bb1f72e084","used":true,"who":"陈宇明"},{"_id":"59b9dfc1421aa9118c8262c1","createdAt":"2017-09-14T09:47:45.123Z","desc":"一个用 Kotlin 写的查单词 idea 插件","images":["http://img.gank.io/4939784c-eea2-4b60-9c7a-d1b4d9f9c8b5"],"publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/jungletian/BreakWords","used":true,"who":"ZhangTitanjum"},{"_id":"59ba01b6421aa911878707f5","createdAt":"2017-09-14T12:12:38.108Z","desc":"Floo 开源了,一个支持 AOP、栈控制、跨页面带信、和动态变更映射的 URL 路由","publishedAt":"2017-09-14T16:36:51.63Z","source":"web","type":"Android","url":"https://github.com/drakeet/Floo","used":true,"who":"drakeet"},{"_id":"59b667cf421aa9118887ac12","createdAt":"2017-09-11T18:39:11.631Z","desc":"用少量Rxjava代码,为retrofit添加退避重试功能","publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"http://www.jianshu.com/p/fca90d0da2b5","used":true,"who":"小鄧子"},{"_id":"59b673ef421aa9118887ac13","createdAt":"2017-09-11T19:30:55.50Z","desc":"Android 端基于 OpenCV 的边框识别功能","publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"https://pqpo.me/2017/09/11/opencv-border-recognition/","used":true,"who":"Linmin Qiu"},{"_id":"59b69738421aa9118c8262ad","createdAt":"2017-09-11T22:01:28.352Z","desc":"用ContentProvider初始化你的库","images":["http://img.gank.io/3b0b193d-6abf-4714-9d5a-5508404666f4"],"publishedAt":"2017-09-12T08:15:08.26Z","source":"web","type":"Android","url":"http://zjutkz.net/2017/09/11/%E4%B8%80%E4%B8%AA%E5%B0%8F%E6%8A%80%E5%B7%A7%E2%80%94%E2%80%94%E4%BD%BF%E7%94%A8ContentProvider%E5%88%9D%E5%A7%8B%E5%8C%96%E4%BD%A0%E7%9A%84Library/","used":true},{"_id":"5996c673421aa96729c57262","createdAt":"2017-08-18T18:50:27.254Z","desc":"UiAutomator2.0升级填坑记","publishedAt":"2017-09-07T13:25:26.977Z","source":"web","type":"Android","url":"http://skyseraph.com/2017/06/04/Android/UiAutomator2.0%E5%8D%87%E7%BA%A7%E5%A1%AB%E5%9D%91%E8%AE%B0/","used":true,"who":"SkySeraph"},{"_id":"59a37311421aa901bcb7dbb2","createdAt":"2017-08-28T09:34:09.768Z","desc":"Scrum:官僚者们的游戏","publishedAt":"2017-09-07T13:25:26.977Z","source":"web","type":"Android","url":"https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247486650&idx=1&sn=9c6e2e0fd5780aab2bcb02b823e7316e","used":true,"who":"陈宇明"}]
     */

    private boolean error;
    private List<ResultsBean> results;

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public List<ResultsBean> getResults() {
        return results;
    }

    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }

    public static class ResultsBean {
        /**
         * _id : 59b7a98e421aa911847a0392
         * createdAt : 2017-09-12T17:31:58.794Z
         * desc : ViewStub学习
         * images : ["http://img.gank.io/9f51b7bc-73d3-4ce4-bd59-c61cb0c64325"]
         * publishedAt : 2017-09-14T16:36:51.63Z
         * source : web
         * type : Android
         * url : http://rkhcy.github.io/2017/09/12/ViewStub%E5%AD%A6%E4%B9%A0/
         * used : true
         * who : HuYounger
         */

        private String _id;
        private String createdAt;
        private String desc;
        private String publishedAt;
        private String source;
        private String type;
        private String url;
        private boolean used;
        private String who;
        private List<String> images;

        public String get_id() {
            return _id;
        }

        public void set_id(String _id) {
            this._id = _id;
        }

        public String getCreatedAt() {
            return createdAt;
        }

        public void setCreatedAt(String createdAt) {
            this.createdAt = createdAt;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getPublishedAt() {
            return publishedAt;
        }

        public void setPublishedAt(String publishedAt) {
            this.publishedAt = publishedAt;
        }

        public String getSource() {
            return source;
        }

        public void setSource(String source) {
            this.source = source;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public boolean isUsed() {
            return used;
        }

        public void setUsed(boolean used) {
            this.used = used;
        }

        public String getWho() {
            return who;
        }

        public void setWho(String who) {
            this.who = who;
        }

        public List<String> getImages() {
            return images;
        }

        public void setImages(List<String> images) {
            this.images = images;
        }
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值