Android--------------mouth题

public class MainActivity extends AppCompatActivity implements NetDataCallback {
    private ArrayList<News.DataBean> mlist=new ArrayList<>();
    private Myadapter md;
    private RecyclerView mrv;
    private int a=1;
    private String urll="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=";
   // private String url="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1";
    private OkHttpl http;
    private Handler hand=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            Gson gson=new Gson();
            if (msg.what==1) {
                News news = gson.fromJson(msg.obj.toString(), News.class);
             //news.getData()获得的是list集合,需要强转成ArrayList集合
                mlist=(ArrayList<News.DataBean>) news.getData();
                Log.e("list........",mlist.toString());
                md.setdata((ArrayList<News.DataBean>) mlist);
                md.notifyDataSetChanged();

            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       mrv=(RecyclerView)findViewById(R.id.rcv);
        //网络判断
        if (isNetworkAvailable(this)){
            initdata();
            mrv.setLayoutManager(new LinearLayoutManager(this));
            md=new Myadapter(this,mlist);
            mrv.setAdapter(md);
            //渐变
            ObjectAnimator  animation= ObjectAnimator.ofFloat(mrv,"alpha",1.0f,0.2f);
            //RecyclerView条目的点击事件
            md.setOnItemClickListener(new Myadapter.OnItemClickListener() {
                @Override
                public void onItemClick(View view, int postion) {
                    Toast.makeText(MainActivity.this, mlist.get(postion).getIntroduction(), Toast.LENGTH_SHORT).show();
                }
            });
         //下拉加载更多
           mrv.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                    LinearLayoutManager lm = (LinearLayoutManager) mrv.getLayoutManager();
                    int totalItemCount = recyclerView.getAdapter().getItemCount();
                    int lastVisibleItemPosition = lm.findLastVisibleItemPosition();
                    int visibleItemCount = recyclerView.getChildCount();
                    if (newState==mrv.SCROLL_STATE_IDLE&& lastVisibleItemPosition == totalItemCount - 1 && visibleItemCount > 0){
                        //加载更多
                         a++;
                        initdata();

                    }
                }
            });
        }else{
           // Toast.makeText(MainActivity.this, "请检查网络设置", Toast.LENGTH_SHORT).show();
            //没网的情况,提示去手动开启网络
            Toast.makeText(MainActivity.this,"网络不可用",Toast.LENGTH_SHORT).show();
            AlertDialog.Builder builder=new AlertDialog.Builder(this)
                    .setTitle("提示")
                    .setMessage("当前网络不可用,是否去设置网络")
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Intent intent=new Intent("android.settings.WIFI_SETTINGS");
                            startActivity(intent);
                        }
                    })
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                            finish();
                        }
                    });
            builder.create().show();
        }

    }
    private void initdata() {
        http=new OkHttpl();
        http.getdata(urll+a,this);

    }

    //实现接口重写的两个方法
    @Override
    public void callback(String str) {
        Message msg = Message.obtain();
        msg.what=1;
        msg.obj=str;
        Log.e(".............",str);
        hand.sendMessage(msg);
    }

    @Override
    public void err(int code, String st) {

    }

    //判断网络是否连接的方法
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo info = connectivity.getActiveNetworkInfo();
            if (info != null && info.isConnected())
            {
                // 当前网络是连接的
                if (info.getState() == NetworkInfo.State.CONNECTED)
                {
                    // 当前所连接的网络可用
                    return true;
                }
            }
        }
        return false;
    }
}

-------------------------------------------------------------------------------------
 //单独的网络请求出来
public class MainActivity extends AppCompatActivity implements NetDataCallback<News>{
private RecyclerView mrv;
    private OkHttpUtils http;
    private ArrayList<News.DataBean> mlist=new ArrayList<>();
    private Myadapter md;
    private String url="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initview();
        initdate();
        md.setOnItemClickListener(new Myadapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int postion) {

                Toast.makeText(MainActivity.this,mlist.get(postion).getIntroduction(),Toast.LENGTH_SHORT).show();
            }
        });

    }

    private void initview() {
        mrv=(RecyclerView)findViewById(R.id.recy);

    }
    private void initdate() {
        http=new OkHttpUtils();
        http.getdata(url,this,News.class);

        mrv.setLayoutManager(new LinearLayoutManager(this));
        md=new Myadapter(this,mlist);
        mrv.setAdapter(md);

    }

    @Override
    public void success(News news) {
        mlist= (ArrayList<News.DataBean>) news.getData();
        md.setdata(mlist);
        md.notifyDataSetChanged();

    }

    @Override
    public void fail(int code, String str) {


    }
}

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值