如何使用java显示数据库中的数据时将文本水平居中在一行中

我的数据库中有一些故事。每一行都有故事。我想用java显示数据库中的故事。我很乐意展示数据库中的故事。


我的问题是我想显示一些水平居中的线。为此,我在该行的文本之前添加了 <#c> 标记,以使文本水平居中。


数据库故事如下:


<#c>聪明的老猫头鹰


有一只老猫头鹰住在一棵橡树里。


每天他都会看到周围发生的事情。


昨天他看到一个男孩帮助一位老人拎着一个沉重的篮子。


今天他看到一个女孩对她妈妈大喊大叫。


<#c>他见得越多,说话就越少。


<#c>他说得越少,听到的就越多。


他听到人们说话、讲故事。


....


故事的道德启示 :


<#c>你应该善于观察,少说多听。


<#c>这会让你成为一个聪明的人。


我在下面尝试过这样的。


SQLiteDatabase sqLiteDatabase = DatabaseHelper.getInstance(context).getWritableDatabase();

Cursor cursor2 = sqLiteDatabase.rawQuery("SELECT subject FROM work", new String[]{});

if (cursor2.getCount() == 0) {

        Toast.makeText(context, "No Data to show", Toast.LENGTH_LONG).show();


    } else {

        while (cursor2.moveToNext()) {

            listItem2.add(cursor2.getString(cursor2.getColumnIndex("subject")));

        }


        cursor2.close();

    }

上面的代码显示了包括 <#c> 在内的所有文本。但我想删除 <#c> 并使 <#c> 标记线水平居中。


我尝试使用 StringBuilder 和追加功能。但我无法申请。


StringBuilder sb = new StringBuilder();

我不明白我将如何实现这一点。


我真诚地需要你的帮助。


炎炎设计
浏览 61回答 1
1回答

繁华开满天机

如果你只是想如果存在这样的标签,则删除"<#c>"行首的标签,并且如果该行中有这样的标签,则将列表项中的文本居中那么您可以尝试在设置列表项文本内容的代码部分中这样做:// get the TextView instance firstTextView textView = ((TextView) rootView.findViewById(R.id.text2));// then get the text in order to check if it begins with the tagString text = args.getString(ARG_OBJECT2);// find out if it begings with the tagboolean beginsWithTag = text.startsWith("<#c>");// then handle the case of a leading tagif (beginsWithTag) {&nbsp; &nbsp; // replace the tag with an empty String and trim it&nbsp; &nbsp; text = text.replace("<#c>", "").trim(); // removes the leading tag&nbsp;&nbsp; &nbsp; text.trim(); // removes all trailing or leading whitespaces&nbsp; &nbsp; textView.setGravity(Gravity.CENTER);}// finally just add the texttextView.setText();请注意,我没有您的完整代码,无法以任何合适的方式对其进行测试。您必须自己调试任何错误。您也可以缩短此代码,但我认为多写几行可以显示在这种情况下更清楚地执行此操作的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java