Android开发过程中遇到的一些问题

常见问题一

关于解析数据的问题

遇到这种的json数据该如何解析

null( { } )

解决方案:

result是返回的数据,通过返回的result.replace进行替换就可以正常解析

String replace = result.replace("null(", "").replace(")", "");

常见问题二

有的时候我们在请求接口的时候会发现,图片的地址必须要进行分割才能显示出来,这时候我们应该怎麽解决

//得到图片的地址
String images = list.get (position).getImages ();
//用images.split进行分割  
 String[] split = images.split ("\\|");
 //使用
holder1.shopimage.setImageURI (Uri.parse (split[0]));

常见问题三

recycleView进行点击条目跳转

因为recycleview本身是没有点击事件,所以我们要用接口回掉的方式进行操作

适配器里写接口

//实现接口
private OnItemClickListener onItemClickListener;
//创建接口
public interface OnItemClickListener{
    void onItemClickListener(int layoutPosition);
}
//外界调用的方法
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
    this.onItemClickListener = onItemClickListener;
}
onBindViewHolder里面
//得到布局条目的position
final int layoutPosition = holder.getLayoutPosition ();
//必须在itemView的点击事件里面判断
holder.itemView.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick(View v) {
                if(onItemClickListener!=null){
                    onItemClickListener.onItemClickListener (layoutPosition);
                }
            }
    });

在mainActivity中调用

//适配器调用点击事件的方法
shopAdaper.setOnItemClickListener (new ShopAdaper.OnItemClickListener () {
    @Override
    public void onItemClickListener(int layoutPosition) {
        //点击条目的时候要根据点击的下标跳转到相应的页面,所以需要拿到解析完的集合list.get(传过来的下标).地址
        String detailUrl = list.get (layoutPosition).getDetailUrl ();
        Intent intent=new Intent (getActivity (), ProductDetailsActivity.class);
        intent.putExtra ("datas",detailUrl);

        startActivity (intent);
    }
});

猜你喜欢

转载自blog.csdn.net/lxd13699/article/details/80523047