跳转传参,butterknife,xrecyclerview监听,刷新加载综合
来源:互联网 发布:深入浅出的数据分析 编辑:程序博客网 时间:2024/06/14 11:40
需要导的依赖包
compile 'com.jcodecraeer:xrecyclerview:1.3.2' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.github.bumptech.glide:glide:4.0.0' compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' compile 'com.google.code.gson:gson:2.8.1' compile 'com.orhanobut:logger:2.1.1'
MainActivity类
public class MainActivity extends AppCompatActivity implements XRecyclerView.LoadingListener, Myadapter.OnClickListener { int page = 1; String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=" + page; List<Data.DataBean> list = new ArrayList<>(); @BindView(R.id.xrecyclerview) XRecyclerView xrecycler; Myadapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); loadData(); initview(); } private void initview() { // 对XRecycleView设置可以加载和刷新 xrecycler.setLoadingListener(this); xrecycler.setPullRefreshEnabled(true); //设置刷新风格 xrecycler.setLoadingMoreProgressStyle(ProgressStyle.BallPulseRise); LinearLayoutManager lm = new LinearLayoutManager(this); xrecycler.setLayoutManager(lm); } private void loadData() { OkHttpClient ok = new OkHttpClient(); Request r = new Request.Builder().url(path).build(); ok.newCall(r).enqueue(new Callback() { String strin; @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { strin = response.body().string(); runOnUiThread(new Runnable() { @Override public void run() { Data data = new Gson().fromJson(strin, Data.class); list.addAll(data.getData()); Log.e("==============", "run: " + list.toString()); Logger.addLogAdapter(new AndroidLogAdapter()); Logger.d("hello"); adapter = new Myadapter(list); xrecycler.setAdapter(adapter); adapter.setListener(MainActivity.this); adapter.notifyDataSetChanged(); } }); } }); } @Override public void onRefresh() { list.clear(); loadData(); xrecycler.loadMoreComplete(); xrecycler.refreshComplete(); adapter.notifyDataSetChanged(); } @Override public void onLoadMore() { page++; loadData(); xrecycler.loadMoreComplete(); xrecycler.refreshComplete(); adapter.notifyDataSetChanged(); } /** * 监听跳转传参 * @param v * @param pag */ @Override public void listeren(View v,int pag) { Toast.makeText(this, "点击", Toast.LENGTH_LONG).show(); Intent intent=new Intent(MainActivity.this,Tu.class); intent.putExtra("user",list.get(pag).getImg()); startActivity(intent); }}
跳转过来的界面
public class Tu extends AppCompatActivity { @BindView(R.id.imageview) ImageView imageView; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tu); ButterKnife.bind(this); String user = getIntent().getStringExtra("user"); Glide.with(Tu.this).load(user).into(imageView); }}
适配器类
public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { List<Data.DataBean> list; OnClickListener listener; public Myadapter(OnClickListener listener) { this.listener = listener; } public void setListener(OnClickListener listener) { this.listener = listener; } public Myadapter(List<Data.DataBean> list) { this.list = list; } static class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.imagev) ImageView imageView; @BindView(R.id.txet) TextView textView; public ViewHolder(View itemView) { super(itemView); ButterKnife.bind(this,itemView); } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.xrecyclerviews, parent, false); ButterKnife.bind(view); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { ((ViewHolder)holder).textView.setText(list.get(position).getTitle()); Glide.with( ((ViewHolder)holder).imageView).load(list.get(position).getImg()).into(((ViewHolder)holder).imageView); ((ViewHolder)holder).imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (listener!=null){ listener.listeren(view,position); } } }); } @Override public int getItemCount() { return list.size(); } public interface OnClickListener{ void listeren(View v,int psg); }}
activity_main布局
<com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/xrecyclerview" android:layout_width="match_parent" android:layout_height="wrap_content"></com.jcodecraeer.xrecyclerview.XRecyclerView>
xrecyclerviews布局
<ImageView android:id="@+id/imagev" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/txet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dfgs"/>
tu布局
<ImageView android:id="@+id/imageview" android:layout_width="match_parent" android:layout_height="wrap_content" />
阅读全文
0 0
- 跳转传参,butterknife,xrecyclerview监听,刷新加载综合
- XRecyclerView刷新、加载
- XRecyclerview刷新加载
- XRecyclerView 刷新加载
- XRecyclerView的刷新和加载
- XRecyclerView上下拉加载刷新
- 使用XRecyclerview刷新&加载更多
- xrecyclerview的刷新和加载
- mvp+retrofit+rxjava xrecyclerview实现多条目 下拉刷新 下拉加载 点击跳转
- SwipeRefreshLayout下拉刷新,加载更多XRecyclerView
- RecyclerView的刷新和加载--XRecyclerView
- XRecyclerView下拉刷新和上拉加载
- 可上拉加载和下拉刷新的XRecyclerView
- XRecyclerView上拉刷新下拉加载
- XRecyclerView 上拉刷新、下拉加载
- XRecyclerView 上拉加载 下拉刷新
- XRecyclerView下拉刷新,上拉加载
- xRecyclerView的刷新,加载更多,多条目
- Pacemaker
- [IOI1994]The Castle
- [编程题] 度度熊回家
- Java程序实现欧几里得算法-计算两个数的最大公约数
- 匈牙利算法
- 跳转传参,butterknife,xrecyclerview监听,刷新加载综合
- 字符串问题---替换字符串中连续出现的指定字符串
- JAVA垃圾回收机制概要
- 【贪心例题专题】&贪心~越多越好哟~&
- 整合Struts,Spring,mybatis三个框架的helloworld
- Gazebo 官网教程学习笔记--Model Editor
- jquery中的用ajax发送请求过程笔记
- 【第3章】Python容器:列表、元组、字典与集合
- 关于函数strtok和strtok_r的使用要点和实现原理(二)