public class MainActivity extends AppCompatActivity {
private String url = "url地址";
private RecyclerView recyclerView;
private RecyclerAdapter adapter;
private List<bean类> list = new ArrayList<>();
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
String s = (String) msg.obj;
Gson gson = new Gson();
ViewBean bean = gson.fromJson(s, ViewBean.class);
list.addAll(bean.list);
adapter.notifyDataSetChanged();
Log.e("-----------------", "---" + list.size());
adapter.setOnItemClickLitener(new RecyclerAdapter.OnItemClickLitener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(MainActivity.this, list.get(position),
Toast.LENGTH_SHORT).show();
}
});
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycle);
boolean conn = Connutlis.isConn(this);
//判断网络是否连接成功
if(!conn){
//没有网络
Connutlis.setNetworkMethod(this);
loadData();
}else {
loadData();
}
//设置recycler管理器
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//分割线
recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
adapter = new RecyclerAdapter(this, list);
//设置适配器
recyclerView.setAdapter(adapter);
}
//okhttp请求
private void loadData() {
OkHttpClient mOkHttp = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(url)
.get()
.build();
Call call = mOkHttp.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().string();
Message mes = Message.obtain();
mes.obj = s;
handler.sendMessage(mes);
}
});
}
}
//
设置item点击首先在style样式中加入
加入selector
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/colorAccent"></item>
<item android:drawable="@color/colorPrimary"></item>
</selector>
加入分割线:
首先在values中加入:
<item name="android:listDivider">@drawable/divider</item>
设置shape样式:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#f00"></solid>
<size android:height="3dp"></size>
</shape>
RecyclerAdapter 类:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder> {
private MyViewHolder viewHolder;
private Context context;
private List<ViewBean.ListBean> list;
public RecyclerAdapter(Context context, List<ViewBean.ListBean> list) {
this.context = context;
this.list = list;
}
public interface OnItemClickLitener
{
void onItemClick(View view, int position);
}
private OnItemClickLitener mOnItemClickLitener;
public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)
{
this.mOnItemClickLitener = mOnItemClickLitener;
}
@Override
public RecyclerAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item, null);
viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerAdapter.MyViewHolder holder, int position) {
list.get(position);
// 如果设置了回调,则设置点击事件
if (mOnItemClickLitener != null)
{
holder.itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
mOnItemClickLitener.onItemClick(viewHolder.itemView, position);
ObjectAnimator
.ofFloat(v, "rotationX", 0.0F, 360.0F)
.setDuration(500)
.start();
}
});
}
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public MyViewHolder(View itemView) {
super(itemView);
}
}
}
//
网络连接成功与否:
public class Connutlis {
/*
* 判断网络连接是否已开
*true 已打开 false 未打开
* */
public static boolean isConn(Context context) {
boolean bisConnFlag = false;
ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = conManager.getActiveNetworkInfo();
if (network != null) {
bisConnFlag = conManager.getActiveNetworkInfo().isAvailable();
}
return bisConnFlag;
}
/*
* 打开设置网络界面
* */
public static void setNetworkMethod(final Context context){
//提示对话框
AlertDialog.Builder builder=new AlertDialog.Builder(context);
builder.setTitle("网络设置提示").setMessage("网络连接不可用,是否进行设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent intent=null;
//判断手机系统的版本 即API大于10 就是3.0或以上版本
if(android.os.Build.VERSION.SDK_INT>10){
intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
}else{
intent = new Intent();
ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
context.startActivity(intent);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).show();
}
}