我是Android编程的新手,我想在我的Android应用程序中实现这一点:
我的JSON是这样的:
"Keywords":["medical","science","international"],
我的Android代码就是这样:
String keyStr = "";
for (String str : m.getKeywords())
{
keyStr += str + " ";
}
当我将其放入TextView
时,会显示如下结果:
国际医学科学
但是,我想在上面的图片中给出它所显示的效果,我在我的网站上做过。一种解决方案是使用HTML.fromhtml()
,但它不适用于我,我需要任何其他解决方案。
答案 0 :(得分:0)
假设每个标记都可以通过右侧的十字删除,您必须创建多个TextView
,每个ImageView
应该有onClickListener
。
从我的角度来看,可能是在很小的宽度屏幕上渲染很多标签,所以我使用HorizontalScrollView
。所以你可以创建一个容器:
<HorizontalScrollView
android:id="@+id/horizontal_scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:id="@+id/tags_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal" />
</HorizontalScrollView>
关于标签的数量,请执行循环以动态创建每个标签,如下所示:
LinearLayout tagsContainer = (LinearLayout) findViewById(R.id.tags_container);
for (String keyword : m.getKeywords()) {
// inflate the child view by using a custom layout
View tagView = LayoutInflater.from(this).inflate(R.layout.tag_layout, null);
TextView tagTextview = (TextView) tagView.findViewById(R.id.tags_textview);
ImageView tagImageview = (ImageView) tagView.findViewById(R.id.tags_imageview);
// set the elements value
tagTextView.setText(keyword);
tagImageView.setOnClickListener(new View.OnClickListener() {
// close the tag
}
// add to the container
tagsContainer.addView(tagView);
}