package com.dongbang.yutian.adapter;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.dongbang.yutian.R;
import com.dongbang.yutian.beans.ContactsBean;
import java.util.List;
/**
* Created by qzp on 2016/12/21.
*/
public class AboutAdapter extends RecyclerView.Adapter<AboutAdapter.MyViewHolder> {
private static Context context;
private List<ContactsBean> aboutBeen;//集合
public AboutAdapter(Context context, List<ContactsBean> aboutBeen) {
this.context = context;
this.aboutBeen = aboutBeen;
}
@Override
public AboutAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_about, parent, false);
return new AboutAdapter.MyViewHolder(view);
}
@Override
public void onBindViewHolder(AboutAdapter.MyViewHolder holder, final int position) {
holder.name.setText(aboutBeen.get(position).getUsername());
holder.date.setText(aboutBeen.get(position).getMobile());
holder.imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemChrldListner.onCall(v, position);
}
});
}
@Override
public int getItemCount() {
return aboutBeen.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView name;
private TextView date;
private ImageView imageButton;
public MyViewHolder(View view) {
super(view);
name = (TextView) itemView.findViewById(R.id.name);
date = (TextView) itemView.findViewById(R.id.date);
imageButton = (ImageView) itemView.findViewById(R.id.imageButton);
}
}
//要定义一个按钮监听抽象接口和时间
public interface OnItemChrldListner {
void onCall(View view, int position);
}
//定义一个监听 再activity中调用
private OnItemChrldListner onItemChrldListner;
public void setOnItemChrldListner(OnItemChrldListner onItemChrldListner) {
this.onItemChrldListner = onItemChrldListner;
}
//数据返回到实体中 不然找不到数据
public ContactsBean getItemData(int postion) {
return aboutBeen.get(postion);
}
}
package com.dongbang.yutian.fragment;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.dongbang.yutian.R;
import com.dongbang.yutian.adapter.AboutAdapter;
import com.dongbang.yutian.beans.BaseBean;
import com.dongbang.yutian.beans.ContactsBean;
import com.dongbang.yutian.beans.ResultBean;
import com.dongbang.yutian.retrofit.RetrofitFactory;
import com.dongbang.yutian.utils.ToastUtils;
import com.zhy.base.adapter.recyclerview.DividerItemDecoration;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/**
* 我的
*/
public class AboutFragment extends BaseFragment {
@Bind(R.id.list_item)
RecyclerView recyclerView;
private Context mContext;
private AboutAdapter aboutAdapter;
private List<ContactsBean> contactsBean; //实例化实体 重要
@Override
protected void lazyload() {
}
public AboutFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_about, container, false);
ButterKnife.bind(this, view);
initview();
mContext = getActivity();//实例化 赋值
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),
DividerItemDecoration.VERTICAL_LIST));
return view;
}
//初始化数据
private void initview() {
LinearLayoutManager manager = new LinearLayoutManager(mContext);
recyclerView.setLayoutManager(manager);
contacts();
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
/**
* 获取联系人
*/
private void contacts() {
Call<BaseBean<ResultBean<List<ContactsBean>>>> call = RetrofitFactory.getGsonRetrofitService(RetrofitFactory.CON).contacts();
call.enqueue(new Callback<BaseBean<ResultBean<List<ContactsBean>>>>() {
@Override
public void onResponse(Call<BaseBean<ResultBean<List<ContactsBean>>>> call, final Response<BaseBean<ResultBean<List<ContactsBean>>>> response) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (response.isSuccessful()) {
if (response.body().getResult().getResult() == 200) {
//
contactsBean = response.body().getResult().getData();
aboutAdapter = new AboutAdapter(mContext, contactsBean);
recyclerView.setAdapter(aboutAdapter);
aboutAdapter.setOnItemChrldListner(new AboutAdapter.OnItemChrldListner() {
@Override
public void onCall(View view, int position) {
ContactsBean contactsBean = aboutAdapter.getItemData(position);
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+contactsBean.getMobile()));
startActivity(intent);
}
});
} else {
ToastUtils.showShort(mContext, "请求错误");
}
} else {
ToastUtils.showShort(mContext, "服务器请求失败");
}
}
});
}
@Override
public void onFailure(Call<BaseBean<ResultBean<List<ContactsBean>>>> call, Throwable t) {
}
});
}
}
“`