android资源ID数据库存储方案

       自编游戏APP时,头像资源要存入数据库,碰到两个问题,解决方案记录如下:

1.资源ID在安卓系统中是整数,但数据库得存储字符串,APP中使用SharedPreferences时仍然用int型。

存入时将资源ID转化为字符串:head_img为资源ID

 String headName = getResources().getResourceName(head_img);

取出时转化为整数存入SharedPreferences:

headID=getResources().getIdentifier(headName,"drawable",getBaseContext().getPackageName());

2资源ID转化的字符串带符号用两个参数接收。

.资源ID转化的的字符串类似com.xiao.app:drawable/f10,自带"/"。restful风格的微服务会把它当成两个参数,拒绝服务。最简单的处理是在服务端用两个参数接收,再拚成一个字符串存储。

/*保存用户头像名*/
    @GetMapping("saveHeadImg/{id}/{headName}/{park}")
    public void updateHeadImg(@PathVariable String id, @PathVariable String headName, @PathVariable String park) {
        user = userMapper.selectById(id);
        String complete_headName = headName + "/" + park;
        user.setHeadName(complete_headName);
        userMapper.updateById(user);
    }

存取成功!

posted @ 2020-11-26 02:50  风肖肖(肖遥)  阅读(240)  评论(0编辑  收藏  举报