`
zkh43javaeye
  • 浏览: 84485 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

解决:sqlite数据库含有\n的值或者sax解析xml有\n的值付给TextView,显示却不会换行

阅读更多

遇到个问题,网上也有人问

从sqlite数据库取含有\n的值付给TextView,显示结果却不会换行,而是将\n也原原本本的显示出来了。太奇怪了!
那位老大解决过这种问题吗?给个思路...谢谢!

 

 直接字符串中的/n或者strings.xml中的\n,textView可以自动换行,而数据库中或者xml解析后得到的字符串中的\n则原原本本的显示出来了。

自己想了个山寨办法:

            List<Question> questionList = parse();
            //textView.setText(questionList.get(0).getContent());
            String a = questionList.get(1).getContent();
            String b = "";
            String aa[] = a.split("\n");
             for(int i = 0;i<aa.length;i++){
                 if(i==0){
                     b = aa[i]+"\n";
                 }
                 else if(i!=aa.length-1){
                     b = b + aa[i]+"\n";
                 }
                 else{
                     b = b + aa[i];
                 }
             }
            textView.setText(b);

有更好办法的说声 thanks...

 

补充

从raw/dates.txt文件取出字符串;

{"items":[{"content":"11111请选择:\nA、1成都\nB、1北京\nC、1上海\nD、1深圳","answer":"3","selectable":"1","chapterName":"1.1"},{"content":"22222请选择:\nA、2成都\nB、2北京\nC、2上海\nD、2深圳","answer":"1","selectable":"1","chapterName":"1.2"}]}

 private String getDateFromTxt(){
  InputStream localInputStream = getResources().openRawResource(R.raw.dates);
  BufferedReader reader = null;
  StringBuffer sb = null;
  try {
  reader = new BufferedReader(new InputStreamReader(localInputStream));
  sb = new StringBuffer();
  String temp = null;
  while( (temp = reader.readLine())!=null) {
   sb.append(temp);
  }
  } catch (FileNotFoundException e) {
  e.printStackTrace();
  } catch (IOException e) {
  e.printStackTrace();
  } finally {
  try {
  reader.close();
  } catch (IOException e) {
  e.printStackTrace();
  }
  }
  return sb.toString();
 }

 

//json解析代码

   JSONArray jArr;
   JSONObject j;
   String content = "";
   try {
     j= new JSONObject(getDateFromTxt());
    jArr = (JSONArray) j.get("items");
    for(int i=0;i<jArr.length();i++){
     JSONObject jj = (JSONObject)jArr.get(i);
     content = jj.getString("content");
    }
    textView.setText(content);
   } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

 

从文件中读出json数据.\n可以正常实现换行功能。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics