首先,我知道如何拆分字符串,我的问题不是将它拆分为逗号或空格。
我有一个这样的字符串:
"hello,nice,owesome"
我希望像这样显示:
这是我分隔字符串的方式:
ArrayList<String> list = Arrays.asList(str.split(","));
现在我已经分开了问候语列表,但我不知道如何在一个TextView
中将此列表显示为多个标签。
答案 0 :(得分:1)
像这样创建你的芯片布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_chip"
android:gravity="center"
android:paddingLeft="4dp"
android:paddingRight="4dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_chip"
android:gravity="center"
android:paddingBottom="6dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:paddingTop="6dp">
<TextView
android:id="@+id/chip_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="6dp"
android:text="#SoftwereEngineer"
android:textColor="@android:color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
然后创建一个容器,在其中添加这些芯片
<LinearLayout
android:id="@+id/chip_container
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_chip"
android:gravity="center"
android:orientation:"horizontal"
android:paddingBottom="4dp"
android:paddingTop="4dp"/>
在你的java文件中将芯片添加到这个容器
LinearLayout linearLayout = view.findViewById(R.id.chip_container);
for(int i = 0; i < list.size ; i++){
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.item_chip, null);
((TextView) view.findViewById(R.id.chip_text)).setText(list.get(i));
linearLayout.addView(view);
}
background_chip.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#cac8c8"/>
<corners android:radius="20dp"/>
</shape>
答案 1 :(得分:1)
尝试芯片视图。你需要的是here
答案 2 :(得分:1)
只需将其循环为简单的一个:
String temp="";
String tagFront= "<font color='color code you want'>";
String tagBack = "</font>";
for(int i=0;i<list.size();i++){
temp+=tagFront+list.get(i)+tagBack+" ";
}
YourtextView.setText(Html.fromHtml(temp));
我只是添加这个,文本颜色的顶级代码,对不起 试试这个:
int count =0;
List<String> list = new ArrayList<>();
String str1 = "Hello";
String str2 = "World";
String str3 = "what's up?";
String message = str1 + " " + str2 + " " + str3;
list.add(str1);
list.add(str2);
list.add(str3);
Spannable spannable = new SpannableString(message);
for(int i=0;i<list.size();i++)
{
spannable.setSpan(new BackgroundColorSpan(Color.BLUE),count, list.get(i).length()+count, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
count = count + list.get(i).length() + 1;
}
respas.setText(spannable);
答案 3 :(得分:0)