XRecyclerView的使用

来源:互联网 发布:育知同创北京校区 编辑:程序博客网 时间:2024/06/03 03:30

int type = 21;
private User user;
private XRecyclerView rv;
private MyRVAdapter adapter;
boolean flag = true;
android.os.Handler handler = new android.os.Handler();
private List User.SongListBean list;
private List User.SongListBean list1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nei_rong);
list = new ArrayList User.SongListBean ();
rv = (XRecyclerView) findViewById(R.id.rv);
initRV();
}
private void initRV() {
// 初始化布局管理器
LinearLayoutManager layoutManager = new LinearLayoutManager(NeiRongActivity.this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
rv.setLayoutManager(layoutManager);
rv.setLoadingMoreEnabled(true);
rv.setLoadingMoreProgressStyle(ProgressStyle.Pacman);
initData();
rv.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
flag = true;
type ++;
initData();
adapter.notifyDataSetChanged();
rv.refreshComplete();
}
},3000);
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
flag = false;
type ++;
initData();
adapter.notifyDataSetChanged();
rv.refreshComplete();
}
},3000);
}
});
}
private void initData() {
// 请求数据
OkHttp3LUtils.doGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
user = new Gson().fromJson(response.body().string(), User.class);
if(flag){
list = user.getSong_list();
}else{
list1 = new ArrayList User.SongListBean ();
list1 = list = user.getSong_list();
list1.addAll(list);
}
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter = new MyRVAdapter();
rv.setAdapter(adapter);
TextView title = new TextView(NeiRongActivity.this);
adapter.addHeader(title);
}
});
}
});
}
// 适配器
class MyRVAdapter extends RecyclerView.Adapter RecyclerView.ViewHolder {
public static final int TYPE_HEADER = 0;
public static final int TYPE_BO = 1;
List list = new ArrayList ();
public void addHeader(View view) {
list.add(view);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_HEADER) {
View view = View.inflate(NeiRongActivity.this, R.layout.rv_header, null);
MyHeaderHolder headerHolder = new MyHeaderHolder(view);
return headerHolder;
} else {
View view = View.inflate(NeiRongActivity.this, R.layout.rv_item, null);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof MyHeaderHolder) {
((MyHeaderHolder) holder).h_title.setText(user.getBillboard().getName());
((MyHeaderHolder) holder).h_name.setText(user.getBillboard().getUpdate_date());
((MyHeaderHolder) holder).h_info.setText(user.getBillboard().getComment());
ImageLoader.getInstance().displayImage(user.getBillboard().getPic_s210(),((MyHeaderHolder)holder).h_iv);
}
if (holder instanceof MyViewHolder) {
((MyViewHolder) holder).title.setText(user.getSong_list().get(position).getTitle());
((MyViewHolder) holder).author.setText(user.getSong_list().get(position).getAuthor());
((MyViewHolder) holder).name.setText(user.getSong_list().get(position).getAlbum_title());
ImageLoader.getInstance().displayImage(user.getSong_list().get(position).getPic_big(), ((MyViewHolder) holder).iv);
}
}
@Override
public int getItemCount() {
return user.getSong_list() == null ? 0 : user.getSong_list().size();
}
@Override
public int getItemViewType(int position) {
if (position list.size()) {
return TYPE_HEADER;
} else {
return TYPE_BO;
}
}
class MyHeaderHolder extends RecyclerView.ViewHolder {
TextView h_title, h_name, h_info, h_author;
ImageView h_iv;
RelativeLayout rl;
public MyHeaderHolder(View itemView) {
super(itemView);
h_iv = itemView.findViewById(R.id.header_iv);
h_title = itemView.findViewById(R.id.header_title);
h_author = itemView.findViewById(R.id.header_author);
h_name = itemView.findViewById(R.id.header_name);
h_info = itemView.findViewById(R.id.header_info);
rl = itemView.findViewById(R.id.rl);
}
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView title, name, author;
ImageView iv;
public MyViewHolder(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
name = itemView.findViewById(R.id.name);
iv = itemView.findViewById(R.id.iv);
author = itemView.findViewById(R.id.author);
}
}
}
}

依赖:
compile fileTree(include: [‘*.jar’], dir: ‘libs’)
testCompile ‘junit:junit:4.12’
compile ‘com.android.support:appcompat-v7:26.0.0-alpha1’
compile ‘com.google.code.gson:gson:2.2.4’
compile ‘com.android.support:recyclerview-v7:26.0.0-alpha1’
compile ‘com.jcodecraeer:xrecyclerview:1.3.2’
compile ‘com.squareup.okhttp3:logging-interceptor:3.9.0’
compile ‘com.squareup.okhttp3:okhttp:3.9.0’
compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’

原创粉丝点击