gpt4 book ai didi

java - 将格式化文本附加到 EditText View

转载 作者:太空狗 更新时间:2023-10-29 12:51:48 25 4
gpt4 key购买 nike

我有一个 EditText View ,我用它来向用户显示信息。我能够附加一个字符串,它可以通过以下方法正常工作:

      public void PrintToUser(String text){
MAIN_DISPLAY.append("\n"+text);
}

该应用程序是一个有战斗的角色扮演游戏,当用户战斗时我想将字符串显示为红色。所以我尝试使用 SpannableString。 (改变了方法)

       public void PrintToUser(String text, int Colour){

if(Colour == 0){
//Normal(Black) Text is appended
MAIN_DISPLAY.append("\n"+text);


}else{
//Colour text needs to be set.


//Take the CurrentText
String CurrentText = MAIN_DISPLAY.getText().toString();
CurrentText = CurrentText+"\n";

SpannableString SpannableText = new SpannableString(CurrentText + text);

switch(Colour){
case 1:
SpannableText.setSpan(new ForegroundColorSpan(Color.RED), CurrentText.length(), SpannableText.length(), 0);
break;
}


//You cannot append the Spannable text (if you do you lose the colour)
MAIN_DISPLAY.setText(SpannableText, BufferType.SPANNABLE);
}

这个新方法有效,新行显示为红色。

问题

  1. 只有格式化的最后一行是红色的。如果将新行设置为红色,则由于我检索文本的方式,先前的格式将丢失

    String CurrentText = MAIN_DISPLAY.getText().toString();

  2. 当我只将字符串附加到 EditText 时,它显示 EditText 框的底部(最后输入),现在当使用 SetText 时,用户看到的是顶部。

最后是我的问题:

有没有办法追加格式化的文本?

或者... 我可以从 EditText 中检索格式化文本,然后当我使用 .setText 时我可以保持当前格式吗?

如果是这样......有没有办法将显示焦点放在底部而不是顶部?

谢谢!如果需要其他信息,请发表评论我已经坚持了一段时间。

最佳答案

我的建议是使用以下方法:

myTextView.setText(Hmtl.fromHtml(myString));

myString 的格式可能是:

String myString = "Hello <font color=\'#ff0000\'>World</font>";

关于java - 将格式化文本附加到 EditText View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com