Вы можете использовать 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>
, если нажать на любое слово, вы получите всплывающее окно с этим слово
EDIT: чтобы оправдать текст использовать библиотеку android-justifiedtextview
но не библиотеку из Gradle, есть старая версия, которая не поддерживает SpannableString
. Я рекомендую просто скопировать класс JustifyTextView
из git в ваш проект. Затем вы можете использовать эту точку зрения в вашем .xml
как:
<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"/>
вот что я с этой библиотекой: ![justified text](https://i.stack.imgur.com/Z9koj.png)
Вы также можете изменить библиотеку, чтобы сохранить последнюю строку неоправданным. Каждое слово в тексте по-прежнему доступно для кликов.
Спасибо за ответ Alexander, но мне нужно найти слова, как выглядит изображение. Мне нужно показать слова как оправдывающий стиль. –
http://stackoverflow.com/a/20578041/4001920 вот обоснование –
Я не использую html, и я попробовал TextJustify-Android, но не помог –