public class MainActivity extends AppCompatActivity implements NetDataCallback { private ArrayList<News.DataBean> mlist=new ArrayList<>(); private Myadapter md; private RecyclerView mrv; private int a=1; private String urll="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page="; // private String url="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1"; private OkHttpl http; private Handler hand=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Gson gson=new Gson(); if (msg.what==1) { News news = gson.fromJson(msg.obj.toString(), News.class); //news.getData()获得的是list集合,需要强转成ArrayList集合 mlist=(ArrayList<News.DataBean>) news.getData(); Log.e("list........",mlist.toString()); md.setdata((ArrayList<News.DataBean>) mlist); md.notifyDataSetChanged(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mrv=(RecyclerView)findViewById(R.id.rcv); //网络判断 if (isNetworkAvailable(this)){ initdata(); mrv.setLayoutManager(new LinearLayoutManager(this)); md=new Myadapter(this,mlist); mrv.setAdapter(md); //渐变 ObjectAnimator animation= ObjectAnimator.ofFloat(mrv,"alpha",1.0f,0.2f); //RecyclerView条目的点击事件 md.setOnItemClickListener(new Myadapter.OnItemClickListener() { @Override public void onItemClick(View view, int postion) { Toast.makeText(MainActivity.this, mlist.get(postion).getIntroduction(), Toast.LENGTH_SHORT).show(); } }); //下拉加载更多 mrv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { LinearLayoutManager lm = (LinearLayoutManager) mrv.getLayoutManager(); int totalItemCount = recyclerView.getAdapter().getItemCount(); int lastVisibleItemPosition = lm.findLastVisibleItemPosition(); int visibleItemCount = recyclerView.getChildCount(); if (newState==mrv.SCROLL_STATE_IDLE&& lastVisibleItemPosition == totalItemCount - 1 && visibleItemCount > 0){ //加载更多 a++; initdata(); } } }); }else{ // Toast.makeText(MainActivity.this, "请检查网络设置", Toast.LENGTH_SHORT).show(); //没网的情况,提示去手动开启网络 Toast.makeText(MainActivity.this,"网络不可用",Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder=new AlertDialog.Builder(this) .setTitle("提示") .setMessage("当前网络不可用,是否去设置网络") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent=new Intent("android.settings.WIFI_SETTINGS"); startActivity(intent); } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); finish(); } }); builder.create().show(); } } private void initdata() { http=new OkHttpl(); http.getdata(urll+a,this); } //实现接口重写的两个方法 @Override public void callback(String str) { Message msg = Message.obtain(); msg.what=1; msg.obj=str; Log.e(".............",str); hand.sendMessage(msg); } @Override public void err(int code, String st) { } //判断网络是否连接的方法 public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo info = connectivity.getActiveNetworkInfo(); if (info != null && info.isConnected()) { // 当前网络是连接的 if (info.getState() == NetworkInfo.State.CONNECTED) { // 当前所连接的网络可用 return true; } } } return false; } } ------------------------------------------------------------------------------------- //单独的网络请求出来public class MainActivity extends AppCompatActivity implements NetDataCallback<News>{ private RecyclerView mrv; private OkHttpUtils http; private ArrayList<News.DataBean> mlist=new ArrayList<>(); private Myadapter md; private String url="http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page=1"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); initdate(); md.setOnItemClickListener(new Myadapter.OnItemClickListener() { @Override public void onItemClick(View view, int postion) { Toast.makeText(MainActivity.this,mlist.get(postion).getIntroduction(),Toast.LENGTH_SHORT).show(); } }); } private void initview() { mrv=(RecyclerView)findViewById(R.id.recy); } private void initdate() { http=new OkHttpUtils(); http.getdata(url,this,News.class); mrv.setLayoutManager(new LinearLayoutManager(this)); md=new Myadapter(this,mlist); mrv.setAdapter(md); } @Override public void success(News news) { mlist= (ArrayList<News.DataBean>) news.getData(); md.setdata(mlist); md.notifyDataSetChanged(); } @Override public void fail(int code, String str) { } }
Android--------------mouth题
最新推荐文章于 2024-08-02 10:24:10 发布