Android GridView:使用RecyclerView或简单的文本视图和可点击的单词
那么,有人知道如何创建下面的网格吗?我需要为每个单词设置可点击事件: 如果四个单词不适合一行,则应在一行中显示三个: 如果超过一行n个单词,则应在一行中显示n个单词。Android GridView:使用RecyclerView或简单的文本视图和可点击的单词,android,textview,android-recyclerview,spannablestring,clickablespan,Android,Textview,Android Recyclerview,Spannablestring,Clickablespan,那么,有人知道如何创建下面的网格吗?我需要为每个单词设置可点击事件: 如果四个单词不适合一行,则应在一行中显示三个: 如果超过一行n个单词,则应在一行中显示n个单词。 有人知道如何实现这一点吗?您可以使用SpannableString和ClickableSpan。例如,此活动使用文本创建TextView,并管理对每个单词的单击: public class MainActivity extends AppCompatActivity { Activity activity;
有人知道如何实现这一点吗?您可以使用SpannableString和ClickableSpan。例如,此活动使用文本创建TextView,并管理对每个单词的单击:
public class MainActivity extends AppCompatActivity {
Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = this;
TextView textView = (TextView) findViewById(R.id.textView);
String text = "up down Antidisestablishment over took dropped lighten with from throught fell on up down Antidisestablishment over took dropped lighten with from throught fell on";
String[] textArray = text.split(" ");
SpannableString ss = new SpannableString(text);
int start = 0;
int end = 0;
for(final String item : textArray){
end = start + item.length();
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
Toast.makeText(activity, "Say " + item+ "!", Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
ss.setSpan(clickableSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
start += item.length()+1;
}
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
}
}
下面是activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
android:padding="5dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textColor="#000000"
android:textColorLink="#000000"/>
</LinearLayout>
以下是我从这个图书馆得到的信息:
您还可以修改库以使最后一行不合理。文本中的每一个字仍然是可点击的。 如果您要添加的项目的数量很少,请考虑使用A。它扩展了一个线性布局,所以只需将它包装在一个
滚动视图中
,动态添加您的视图,您就可以开始了。感谢您的回答,Alexander,但我需要根据图像的外观来定位单词。我需要将单词显示为justify样式。我不使用html,我尝试了TextJustify Android,但没有帮助
<com.yourdomain.yourproject.JustifyTextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textColor="#000000"
android:textColorLink="#000000"/>