okhttp请求+recycleview+网络是否连接成功
来源:互联网 发布:材料库存软件 编辑:程序博客网 时间:2024/06/14 11:13
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中加入:设置shape样式:<item name="android:listDivider">@drawable/divider</item><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(); }}
阅读全文
0 0
- okhttp请求+recycleview+网络是否连接成功
- recycleview+okhttp请求数据
- okhttp + RecycleView + Glide 请求网络数据及图片
- 判断网络是否连接成功
- iOS 判断网络请求是否成功
- Android 判断网络是否连接成功
- Android之网络连接判断是否成功
- java okhttp 网络请求
- OkHttp网络请求
- OKHttp请求网络数据
- okhttp网络请求框架
- 网络请求框架OKHttp
- OkHttp网络请求
- OkHttp网络请求框架
- OKHttp网络请求
- OkHttp 网络请求
- 网络请求okhttp框架
- OkHttp网络请求
- 数据库分页(一)
- python实例(水仙花数)
- Organic polysilazane
- ZOJ 3878 Convert QWERTY to Dvorak
- Windows下更改 git bash 软件的启动默认路径
- okhttp请求+recycleview+网络是否连接成功
- HTML小知识点
- DPDK-POLL MODE DRIVER
- C#开发Android-文件的读写
- 使用DMO遍历xml文件(将xml文件中要获取的内容存到ArrayList集合中再取出来)(DMO解析)
- 代码评审系统 ReviewBoard 和 Gerrit
- itext使用html标签生成pdf文件
- Python学习日志(四)之模块
- hadoop搭建四个配置文件(core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml )的简单介绍