需要导的依赖包
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" />