自定义view属性动画 获取异常捕获 recyclerview上刷下加

来源:互联网 发布:淘宝宠物店铺介绍 编辑:程序博客网 时间:2024/06/07 06:50

主方法

public class MainActivity extends AppCompatActivity {    XRecyclerView recyclerView;    List<Data.DataBean> list = new ArrayList<>();    private MyAdapter adapter;    int page=1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        loadView();        loadData();        recyclerView = (XRecyclerView) findViewById(R.id.xrecycleview);        LinearLayoutManager layoutManager = new LinearLayoutManager(this);        recyclerView.setLayoutManager(layoutManager);        adapter = new MyAdapter(this,list);        recyclerView.setAdapter(adapter);        SpacesItemDecoration decoration = new SpacesItemDecoration(16);        recyclerView.addItemDecoration(decoration);        recyclerView.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);        recyclerView.setLoadingMoreProgressStyle(ProgressStyle.BallRotate);        recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {            @Override            public void onRefresh() {                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        adapter.notifyDataSetChanged();                        recyclerView.refreshComplete();                    }                },1000);            }            @Override            public void onLoadMore() {                new Handler().postDelayed(new Runnable() {                    @Override                    public void run() {                        page++;                        loadView();                        recyclerView.loadMoreComplete();                    }                },1000);            }        });      adapter.setListener(new MyAdapter.OnItemClickListener() {          @Override          public void OnItemClickListener(View view, int position) {              Intent intent = new Intent(MainActivity.this, TwoActivity.class);              startActivity(intent);              Toast.makeText(MainActivity.this,list.get(position).getIntroduction(),Toast.LENGTH_SHORT).show();          }      });    }    private void loadData() {        if(isNetworkConnected(this)){            Toast.makeText(this,"有网",Toast.LENGTH_SHORT).show();        }else{            Toast.makeText(this,"没网",Toast.LENGTH_SHORT).show();            laodMei();        }    }    public  void laodMei() {        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);        builder.setMessage("没有网络 是否连接网络");        builder.setTitle("提示");        builder.setPositiveButton("确认",new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");                startActivity(wifiSettingsIntent);            }        });        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();                finish();            }        });        builder.create().show();    }    public boolean isNetworkConnected(Context context) {        if (context != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null) {                return mNetworkInfo.isAvailable();            }        }        return false;    }    private void loadView() {              String url = "http://www.yulin520.com/a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&page="+page;              HttpUrl.sendOkHttpRequest(url, new Callback() {                  @Override                  public void onFailure(Call call, IOException e) {                  }                  @Override                  public void onResponse(Call call, Response response) throws IOException {                      Data data = new Gson().fromJson(response.body().string(), Data.class);                      list.addAll(data.getData());                      Log.e("onResponse", "onResponse"+data.toString());                  }              });    }}
适配器
public class MyAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> implements View.OnClickListener {    Context context;    List<Data.DataBean> list;    OnItemClickListener listener;    public MyAdapter(Context context, List<Data.DataBean> list) {        this.context = context;        this.list = list;    }    public void setListener(OnItemClickListener listener) {        this.listener = listener;    }    @Override    public XRecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);        view.setOnClickListener(this);        ViewHolder holder = new ViewHolder(view);        return holder;    }    @Override    public void onBindViewHolder(XRecyclerView.ViewHolder holder, int position) {        ViewHolder ho = (ViewHolder) holder;        Glide.with(context).load(list.get(position).getUserImg()).into(ho.images);        ho.name.setText(list.get(position).getTitle());        ho.ages.setText(""+list.get(position).getUserAge());        ho.work.setText(list.get(position).getOccupation());        ho.conts.setText(list.get(position).getIntroduction());        ho.itemView.setTag(position);        Animation animation = new AlphaAnimation(0.1f, 1.0f);        animation.setDuration(5000);        ((ViewHolder) holder).images.setAnimation(animation);    }    @Override    public int getItemCount() {        return list == null ? 0 : list.size();    }    public static class ViewHolder extends XRecyclerView.ViewHolder {        ImageView images;        TextView name,ages, work, conts;        public ViewHolder(View itemView) {            super(itemView);            images = itemView.findViewById(R.id.image);            name = itemView.findViewById(R.id.name);            ages = itemView.findViewById(R.id.age);            work = itemView.findViewById(R.id.job);            conts = itemView.findViewById(R.id.cont);        }    }    @Override    public void onClick(View view) {        if (listener!=null){            listener.OnItemClickListener(view, (Integer) view.getTag());        }    }    public interface OnItemClickListener{        void OnItemClickListener(View view,int position);    }}

recyclerview 属性分割线
public class SpacesItemDecoration extends XRecyclerView.ItemDecoration{    private int space;    public SpacesItemDecoration(int space) {        this.space = space;    }    @Override    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {        outRect.left=space;        outRect.right = space;        outRect.bottom=space;        if(parent.getChildAdapterPosition(view)==0){            outRect.top = space;        }    }}


原创粉丝点击