一直在搞个记事本,卡在了edittext插入图片后重新在另一个activity调回图片的问题上。
edittext用ImageSpan 和SpannableString插入了图片,点击保存后,从listview中点击进入另一个activity获取保存信息,保存的信息里不含图片,显示图片的位置显示的是SpannableString ss=new SpannableString(“path”)括号里的信息。
如何重新获取图片,实现edittext里是可以插入多个图片的,插入多少个获取多少个。

解决方案 »

  1.   

    进入另一个Activity当然是用String分开传了
    startActivity(new Intent(this, xxx.class)
                    .putExtra("text", "这是一段文本--!图片!--这是一段文本--!图片!--")
                    .putExtra("imgs", imgList));
    展示的时候用imgSpan吧“--!图片!--”替换成对应图片即可,传输的时候都是这样传,不要把图片和文字放一起
      

  2.   


    imgList是图片的路径吧?打开activity的时候是根据这个路径从本地路径中找到图片转bitmap再从文本中找到“--!图片!--”然后把文本的“--!图片!--”替换为bitmap,是这样吗??
      

  3.   

    插入图片到edittext时SpannableString ss=new SpannableString(uri.getpath),保存已经插入图片的edittext时,把图片由bitmap转为byte存入数据库,同时在数据库另外一个字段存入uri.getpath(),点击listview进入另外一个activity获取图片的byte和另一个字段的uri.getpath(),把byte转换为bitmap,用pattern和matcher匹配文本中的uri.getpath,然后把uri.getpath用imagespan替换成bitmap,最后插入edittext中。
    上面所说的方法,只能实现重新获取插入到edittext的最后一张图片,前面的图片都以uri.getpath显示。不懂,求解。
      

  4.   

    流程是对的,你打断点看一下,循环都正确走了、正确替换了吗
    是不是你在循环里new了一个SpannableString导致只设置了最后一张
      

  5.   


    打断点看到数据库传递path和byte的时候,只传递一个path和byte,,就是说第二次操作后第一次操作被覆盖了,尝试过把path和byte存入集合或文件,但传递过程中总是报错……不好解决,求教。