7

这是我的问题:我有一个数据库,里面充满了电视节目的剧集。一列表示剧集编号。我想在这样的列表中显示剧集:

  • 第1集
  • 第 2 集
  • 第 3 集
  • 等等

我正在使用我自己的扩展 SimpleCursorAdapter 的适配器类来执行此操作......因为我有格式错误我正在使用Android.R.layout.simple_list_item_1Android.R.id.text1

基本上我有一个自定义适配器的唯一原因是我可以做这样的事情:

textView.setText("Episode " + cursor.getString("column_for_episode_number");

问题是,我得到一个如下所示的列表:

  • 插曲
  • 1
  • 插曲
  • 2
  • 插曲
  • 3

当我尝试这样的事情时(它在我的代码的不同部分工作):

String text = "Episode " + cursor.getString("blah");
text = text.replaceAll("\\n","");

我得到完全相同的列表输出:(

为什么我不使用创建一个两个文本框并排的自定义视图?我很难让它看起来很漂亮:/

4

7 回答 7

11
text.replaceAll(System.getProperty("line.separator"), "");
于 2014-12-12T16:37:55.097 回答
5

在替换之前检查开头是否有新行并再次进行相同的测试:

for(int i=0; cursor.getString("blah").length()-1; i++)
{

   if(cursor.getString("blah").charAt(i)=='\\n')  <-- use the constant for the line separator
    { 
      Log.i("NEW LINE?", "YES, WE HAVE");
    }

}

或者使用以下.contains("\n");方法:

检查 xml 以了解 textview 的宽度。

为什么在getString()获取整数时使用?在文本视图中设置值时使用getInt(),然后使用。Integer.toString(theint)

于 2011-07-26T01:35:21.410 回答
5

您的代码中有错误。使用“\n”而不是“\\n”

String myString = "a string\n with new line"
myString = myString.replaceAll("\n","");
Log.d("myString",myString);
于 2016-11-07T07:17:57.423 回答
2

这可以帮助您:

response = response.replaceAll("\\s+","");
于 2017-11-03T05:27:08.977 回答
0

听起来您遇到的是包装问题而不是换行问题。改变这个:

String text = "Episode " + cursor.getString("blah");

对此:

String text = "Episode" + cursor.getString("blah");

看看这是否会改变输出。请发布您的布局xml?

于 2011-07-26T01:45:08.827 回答
0

这适用于我的(在 android 4.4 上):

(其中 body 是从手机上的 EditText 视图输入的带有换行符的字符串)

for (int i=0; i<body.length(); i++) {
    if (body.charAt(i) == '\n' || body.charAt(i) == '\t') {
        body = body.substring(0, i) + " " + body.substring(i+1, body.length());                         
    }
}
于 2014-08-07T20:22:36.000 回答
-1

你试过 cursor.getString("blah").trim()

于 2013-10-18T18:39:30.693 回答