Java 如何在android中选择动态内容中的特定行
我需要从数据库中选择动态内容中的特定行。在表的每一行中,很少有行以开头。我想选择以开始的线并将其居中。我用的是SpannableString。我可以删除,但所有文本都居中 我的问题是我无法选择巴黎线。在Java 如何在android中选择动态内容中的特定行,java,android,styles,spannablestring,spannable,Java,Android,Styles,Spannablestring,Spannable,我需要从数据库中选择动态内容中的特定行。在表的每一行中,很少有行以开头。我想选择以开始的线并将其居中。我用的是SpannableString。我可以删除,但所有文本都居中 我的问题是我无法选择巴黎线。在 setSpan (Object what, int start, int end, int flags) 我将如何编写开始字符和结束字符 我的问题出在 int start and int end 如何对int start和int end使用spannableString.length()
setSpan (Object what, int start, int end, int flags)
我将如何编写开始字符和结束字符
我的问题出在
int start and int end
如何对int start和int end使用spannableString.length()
下面是类似的内容
|<#c>aaaaaaa |
|bbbbbbbbbb |
|<#c>dddddddd |
|cccccccccc |
|jjjjjjjjjj |
|<#c>ffffffff |
|rrrrrrrrr |
|ggggggggggg |
结果是:
I/System.out: spannableString.length : 1763
I/System.out: spannableString.length : 537
I/System.out: spannableString.length : 931
spannableString.length()接受内容中的所有字符,而不仅仅是包含的特定行
如何获得包含的特定行的长度
xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ScrlView"
android:fillViewport="true"
android:clickable="true"
android:focusable="true"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:width = "0dp"
android:id="@+id/text2"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@color/blue"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="5dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
使用上述代码,表行中的所有动态内容都将变为“居中”。我需要将以开头的特定线条居中。你可以试试这个
如果字符串以开头,则If part将执行else,字符串将显示为else part中的字符串
TextView textView1 = ((TextView) rootView.findViewById(R.id.text2));
String text1 = args.getString(ARG_OBJECT2);
SpannableString spannableString;
Object standard;
if (text1.startsWith("<#c>")) {
spannableString = new SpannableString(text1.replaceAll("<#c>", ""));
standard = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER);
spannableString.setSpan(standard, 0, spannableString.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView1.setText(spannableString);
}else{
textView1.setText(text1);
}
TextView textView1=((TextView)rootView.findViewById(R.id.text2));
String text1=args.getString(ARG_OBJECT2);
SpannableString SpannableString;
对象标准;
if(text1.startsWith(“”){
spannableString=新的spannableString(text1.replaceAll(“,”);
标准=新路线span.standard(布局.路线.居中对齐);
spannableString.setSpan(标准,0,spannableString.length(),
Spannable.SPAN_独占性SPAN_独占性);
textView1.setText(spannableString);
}否则{
textView1.setText(text1);
}
@Nilesh Rathod以前的问题是关于多种样式,但现在的问题是如何选择行,这意味着如何使用spannableString.length()计算起始字符和结束字符。你能给我一些建议吗?事实上,我无法解决我为什么要问的问题。谢谢你的支持。问题是一样的。所有文本都居中。我需要将以开头的特定行居中,可能是您在文本视图中添加了android:gravity=“center”,请在删除该android:gravity=“center”不在文本视图中后重试我添加的xml布局文件您的xml很好,通过使用该文件,以开头的行居中对齐,其他行从左对齐,您的代码可能还有其他问题。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ScrlView"
android:fillViewport="true"
android:clickable="true"
android:focusable="true"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ll"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:width = "0dp"
android:id="@+id/text2"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@color/blue"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="5dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
TextView textView1 = ((TextView) rootView.findViewById(R.id.text2));
String text1 = args.getString(ARG_OBJECT2);
SpannableString spannableString;
Object standard;
if (text1.startsWith("<#c>")) {
spannableString = new SpannableString(text1.replaceAll("<#c>", ""));
standard = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER);
spannableString.setSpan(standard, 0, spannableString.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView1.setText(spannableString);
}else{
textView1.setText(text1);
}