xRecyclerView刷新加载(MVP)

本文介绍了一个基于安卓平台的新闻应用程序UI实现方案,包括使用XRecyclerView进行数据展示、自定义适配器NewsAdapter来处理新闻数据、通过Handler更新UI状态等关键技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainActivity extends BaseActivity<NewsPresenter> implements NewsView {

    private int a=1;
    private XRecyclerView recyclerView;
    private NewsAdapter adapter;
    private static final String TAG = "MainActivity....";
    private int f=5;
    boolean flag=true;
    Handler handler=new Handler();
    @Override
    protected void initData() {
        presenter.doNews();
    }

    @Override
    protected void initListener() {

    }

    @Override
    protected void initView() {
        recyclerView = findViewById(R.id.xrecyle);
    }

    @Override
    protected NewsPresenter provied() {
        return presenter=new NewsPresenter(this);
    }

    @Override
    protected int proVid() {
        return R.layout.activity_main;
    }


    @Override
    public void onSuccess(NewsBean newsBean) {
       // Toast.makeText(MainActivity.this,"ddddd",Toast.LENGTH_SHORT).show();
        final List<NewsBean.DataBeanX.DataBean> data = newsBean.getData().getData();
        //list.addAll(data);
        final List<NewsBean.DataBeanX.DataBean> list=data;
        adapter = new NewsAdapter(data);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapter);
     recyclerView.setSaveFromParentEnabled(true);
     recyclerView.setLoadingMoreEnabled(true);
      recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                       flag=true;
                       f++;
                       initData();
                       adapter.notifyDataSetChanged();
                       recyclerView.refreshComplete();
                    }
                });
            }

            @Override
            public void onLoadMore() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        flag=false;
                        f++;
                        initData();
                        adapter.notifyDataSetChanged();
                        recyclerView.refreshComplete();
                    }
                });
            }
        });
      adapter.setOnItemClickListener(new NewsAdapter.onItemClickListener() {
            @Override
            public void onClick(View view, final int position) {
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("删除条目");
                builder.setMessage("确定要删除本宝宝吗");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Log.d(TAG, "onClick: "+list);
                      list.remove(position);
                      adapter.notifyDataSetChanged();
                      Toast.makeText(MainActivity.this,"ddddd",Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消",null);
                builder.show();

            }
        });

      adapter.setOnCLickListener(new NewsAdapter.onCLickListener() {
          @Override
          public void onClick(View view, int position) {
              ObjectAnimator rotation = ObjectAnimator.ofFloat(view, "rotation", 360);
              rotation.setDuration(5000);
              rotation.start();
          }
      });

    }




    @Override
    public void onFaild(String error) {

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值