Android:如何放置带有多行文本的 TextView 的按钮端?

标签 android layout textview

我想在 textview 段落的末尾放置一个按钮,例如“Go”按钮,当用户单击它时,应用程序将转到另一个页面。

例如:

if you have good endurance, 
for killing the monster you must 
going to section 2. [Go->]

-if you haven't good endurance, 
flee to section 3. [Go->]

在上面的示例中,[Go->] 是一个必须精确放置在行尾的小按钮。

如何在运行时完成?

最佳答案

您可以为此使用跨度。

假设您有一个名为 myTextTextView

Drawable goButtonDrawable = getResources().getDrawable(R.drawable.go_button);

String text = "If you have good endurance, for killing the monster you must go to section 2. [GO]"
String replace = "[GO]";

final int index = text.indexOf(replace);
final int endIndex = index + replace.length();

final ImageSpan imageSpan = new ImageSpan(goButtonDrawable, ImageSpan.ALIGN_BASELINE);
final ClickableSpan clickSpan = new ClickableSpan() {
    @Override public void onClick(View clicked) {
        // Do your [GO] action
    }
};

SpannableString spannedText = new SpannableString(text);
spannedText.setSpan(imageSpan, index, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannedText.setSpan(clickSpan, index, endIndex , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

myText.setText(spannedText);

显然,这可以更好地抽象化(您可以制作一个自定义的 TextView 在内部处理它),但这是一般的想法。

关于Android:如何放置带有多行文本的 TextView 的按钮端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23280391/

相关文章:

安卓NDK : How to build for ARM64-v8a with minimumSdkVersion = 19

javascript - CSS(或JS)设置div的高度并使宽度等于正方形

android - 如何在android中自动增加动态创建的TextView的高度?

android - TextView - setCustomSelectionActionModeCallback 如何为多个 TextView 选择文本时创建 ActionMode.Callback

java - Android apk 编译构建后如何添加资源文件?

android - 无法覆盖 AsyncTask 类中的 onPostExecute() 方法

html - 如何在 HTML 和 CSS 中进行此布局?

android - ScrollView 不显示内容

android - 清除应用程序数据后应用程序警报管理器不工作

Android关于TableLayout和省略号的问题