标签: spannablestring

Android开发:如何用Spannable替换EditText的一部分

我正在尝试用span来替换从getText()返回的可编辑部分.

我尝试过getText().replace(),但这只适用于CharSequences.

我试图这样做的原因是我可以一个接一个地突出显示EditText的部分(经过一小段延迟),而不是通过并突出显示整个EditText(对于大文件来说可能很慢).

有没有人知道我将如何做到这一点?

android replace spannablestring spannable

6
推荐指数
1
解决办法
2万
查看次数

使用SpannableStringBuilder时,为什么我的文本没有显示样式?

我有一个SpannableString对象的问题.

下面是一个简短的例子:

SpannableString spanstr = new SpannableString("Bold please!");
spanstr.setSpan(new StyleSpan(Typeface.BOLD), 0, spanstr.length(), 0);

SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append(spanstr);
sb.append("\n"); // A newline
sb.append("The first line is bold. This one isn't.");

CharSequence cq = sb.subSequence(0, sb.length());
// ^There's no such method to return a SpannableString,
// so I try to return a CharSequence instead.

// And then, at last:
TextView contentView = (TextView) findViewById(R.id.some_id);
contentView.setText(cq);
Run Code Online (Sandbox Code Playgroud)

这个例子试图做的是显示:

请大胆!
第一行是粗体.这个不是.

但问题是:文本的第一行不会以粗体显示.

为什么不这样做呢?

android spannablestring

6
推荐指数
1
解决办法
8340
查看次数

如何在TextView文本中为单词设置自定义字体

我想为一个单词设置自定义字体,该单词出现在字符串中的任何位置.

例:海@abc你好吗?亲爱的朋友你好,你在哪里@abc

在上面的例子中,我必须为"abc"应用自定义字体.我尝试过Spannable类,但我无法得到它.

final TextView txtComments = (TextView)view.findViewById(R.id.tv_comments);  
SpannableStringBuilder SS = new SpannableStringBuilder(alcomments.get(i));
SS.setSpan (new CustomTypefaceSpan("", tf), 0, SS.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
txtComments.setText(SS);
Run Code Online (Sandbox Code Playgroud)

但它影响整个字符串.请指导我如何实现它.

android textview custom-font spannablestring

6
推荐指数
1
解决办法
2064
查看次数

当内容覆盖textview中的多行时,有时图像跨度不可见

我有一个textview,我正在尝试绘制图像跨度以及其中的一些文本.

有时,当内容包含到下一行时,某些图像不可见.

在向textview添加跨度时我应该记住什么?

我应该提供的任何其他细节,我可以在这里粘贴我的代码.

android textview spannablestring

6
推荐指数
1
解决办法
562
查看次数

Spannable Text在Dialog Fragment中不起作用

我已经添加TextView了我的Dialog片段,并在此动态显示Spannable数据TextView.但它不适用于文本的Spannable效果.

这是我的代码,用于生成Three Spannable String并添加到TextView中.

 TextView  textViewTicketSummary = (TextView) dialog.findViewById(R.id.ticketSummaryTextView);
 SpannableStringBuilder summary = new SpannableStringBuilder();
    SpannableString VehicleCaptureSpan, TotalVehicleSpan, DurationTimeSpan;

    String VehicleCapture = "Total Vehicles Captured:9";
    VehicleCaptureSpan = new SpannableString(VehicleCapture);
    VehicleCaptureSpan.setSpan(new StyleSpan(Typeface.BOLD), 0, VehicleCapture.length(), 0);
    VehicleCaptureSpan.setSpan(new ForegroundColorSpan(Color.RED), 0, VehicleCapture.length(), 0);
    VehicleCaptureSpan.setSpan(new RelativeSizeSpan(1.5f), 0, VehicleCapture.length(), 0);

    String TotalVehicle = "Total Car Park Capacity:10 ";
    TotalVehicleSpan = new SpannableString(TotalVehicle);
    TotalVehicleSpan.setSpan(new StyleSpan(Typeface.BOLD), 0, TotalVehicle.length(), 0);
    TotalVehicleSpan.setSpan(new ForegroundColorSpan(Color.RED), 0, TotalVehicle.length(), 0);
    TotalVehicleSpan.setSpan(new RelativeSizeSpan(1.5f), 0, TotalVehicle.length(), 0); …
Run Code Online (Sandbox Code Playgroud)

android textview spannablestring android-dialogfragment

6
推荐指数
1
解决办法
2730
查看次数

颤振 - 跨度不能为零长度

我正在开发一个 Flutter 应用程序,它使用 Textfield.

我声明TextField如下:

new TextField(
  controller : _controller,
  decoration : new InputDecoration(
      hintText: 'Message...'
  )
)
Run Code Online (Sandbox Code Playgroud)

TextField显示在我的窗口小部件,但是当我在上面敲击时,键盘会自动关闭,以下错误出现在控制台

E/SpannableStringBuilder(17860): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
Run Code Online (Sandbox Code Playgroud)

我在 Android(三星 Galaxy Grand Prime,Android 5.1)上使用 IntelliJ 中的 Flutter 插件运行它。

我怎么能解决这个问题?

编辑:正如在这个答案中看到的(Android - SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能为零长度),我试过切换键盘(谷歌和三星),仍然相同

android spannablestring flutter

6
推荐指数
1
解决办法
5959
查看次数

Linkify.addLinks与Span无法正常工作

我有自动链接的textview,但每当我将自定义范围(ClickableSpan)添加到textview时,它自动链接到网址和手机号码无效.有没有简单的方法来解决这个问题.应用样式但单击不起作用.

android textview spannablestring autolink clickablespan

6
推荐指数
1
解决办法
630
查看次数

SpannableString 不适用于 Android 单元测试

我尝试在单元测试中比较两个 SpannableStrings 文本,但收到错误:

java.lang.RuntimeException: Method toString in android.text.SpannableString not mocked. See http://g.co/androidstudio/not-mocked for details.
Run Code Online (Sandbox Code Playgroud)

调试后,我验证在单元测试中根本无法使用 SpannableString 类。

测试实施:

java.lang.RuntimeException: Method toString in android.text.SpannableString not mocked. See http://g.co/androidstudio/not-mocked for details.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

java.lang.RuntimeException: Method toString in android.text.SpannableString not mocked. See http://g.co/androidstudio/not-mocked for details.

at android.text.SpannableString.toString(SpannableString.java)
at java.lang.String.valueOf(String.java:2994)
at view_model.ViewModelTest$When getCredits() returns multiple invites$1.invokeSuspend(ViewModelTest.kt:113)
at ViewModelTest$When getCredits() returns multiple invites$1.invoke(ViewModelTest.kt)
at kotlinx.coroutines.test.TestBuildersKt$runBlockingTest$deferred$1.invokeSuspend(TestBuilders.kt:50)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.test.TestCoroutineDispatcher.dispatch(TestCoroutineDispatcher.kt:50)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:305) ...
Run Code Online (Sandbox Code Playgroud)

showInvitesTextValue 变量初始化时发生错误。

如何在单元测试中使用 SpannableString 类?

testing android unit-testing spannablestring kotlin

6
推荐指数
0
解决办法
1262
查看次数

在Android中将字符串数组设置为粗体

我有一个ListView,我设法在其上显示许多文本.一些文本格式为BOLD.为了使这些文本变得粗体,我使用了Spannable并且它有效!但是,当我再次向下滚动时,索引[0]变为多个.

为了避免那个场景,我使用了一个持有者来保存我的TextViews.我设法在滚动中解决了这个问题,但由于某些原因,文本样式是BOLD,在我的ListView中消失了.我怎样才能做到这一点?

MainActivity.java

private void populateListView() {

String[] source = { "Lorem ipsum dolor sit amet", "consectetuer adipiscing elit",
                    "sed diam nonummy nibh " };

final SpannableString out0 = new SpannableString(source[0]);
final SpannableString out2 = new SpannableString(source[2]);

StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);

out0.setSpan(boldSpan, 6, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
out2.setSpan(boldSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.items, // Layout to use (create)
            source) { // Items to be displayed

        public View getView(int position, View convertView, ViewGroup parent) {
            View …
Run Code Online (Sandbox Code Playgroud)

android spannablestring

5
推荐指数
1
解决办法
8587
查看次数

如何将SpannableString写入parcel?

在我的应用程序中,我有一个包含很少SpannableString对象的对话 因为这是对话框,所以我需要能够在用户离开应用程序时存储它并稍后再返回它.

但问题是如何写入SpannableString包裹?

string android parcelable spannablestring

5
推荐指数
1
解决办法
1359
查看次数