在 TextView 中仅隐藏部分文本
Posted
技术标签:
【中文标题】在 TextView 中仅隐藏部分文本【英文标题】:Hide only part of text in TextView 【发布时间】:2015-05-20 09:57:53 【问题描述】:美好的一天,我想在 textview 中隐藏某些指定或特定部分的文本!重要提示:我不是在谈论使用 TextView.setVisibility(View.Gone)
隐藏完整的 textview 我不是在谈论 textview 中 TEXT 的透明性!我不是在谈论隐藏textview 中的全文!所以请帮我隐藏一些文本。
示例:假设我有一个带有此文本的文本视图(10-体育用品)
我想隐藏 (10-) 并仅显示体育用品文本。任何帮助将不胜感激!非常感谢您!
【问题讨论】:
为什么不从指定的字符串中创建子字符串并执行 textView.setText(substring);而不是部分隐藏文本视图? 用 tv.setText 改变文字 嗯,我不知道,所以你能给我一个响应链接,我可以看到这是什么意思吗? 子字符串不能隐藏,可以更改字符串。 嗯,这是我的问题!我正在获取 Json,我必须用 json 的 KEYS 回复响应,所以我用 JSONOBJECT.KEYS() 获取它,没有其他方法!但问题是键给出相反的顺序并且它疯狂地向用户显示不正常的事物顺序。所以在这种情况下我试图隐藏那些键,点击获取当前键并发给他,这就是为什么我'我在这个问题上:( 【参考方案1】:尽管我希望你的案例强烈支持 DroidWorm/Gabriella 方法,但仅供将来可能会看到这一点的所有其他人参考。
如果您真的希望只隐藏包含整个字符串的文本视图的一部分,则应使用 SpannableString ,如下所示:-
tvHello = (TextView) findViewById(R.id.tvHello);
SpannableString customText = new SpannableString("10-Sporting Good");
customText.setSpan(new RelativeSizeSpan(.1f), 0, 3, 0);
tvHello.setText(customText);
此代码将在技术上隐藏 10- 来自 10-Sporting Good 而不使用子字符串。
【讨论】:
谢谢你的选择完全符合我的要求,只帮助了我!!!!谢谢!【参考方案2】:您可以尝试获取整个文本,例如
String text = textView.getText().toString();
然后像这样制作它的子字符串:
String wantedSubstr = text.substring(4); //for example - everything from the 4th index to the end
然后将此子字符串设置为 textView 的文本,如下所示:
textView.setText(wantedSubstr);
【讨论】:
是的,这就是我的目标。只要有一致的前缀,这将起作用。【参考方案3】:有一个可能的解决方案是..首先你必须找到 "-" 的索引(位置),然后根据它拆分字符串,因此使用下面的代码
String text = textView.getText().toString();
int position=text.indexOf('-');
String wantedSubstr = text.substring(position+1);
textView.setText(wantedSubstr);
【讨论】:
【参考方案4】:前面会一直有“10_”吗?还是在您想要的文本之前总是有 3 个字符?还是会一直在你想要的文字前加一个“-”或“_”?
如果是这样,你可以做一个简单的方法,它接受子字符串,然后更新文本视图。如果可以的话我可以帮你写一个简单的方法
【讨论】:
【参考方案5】:你cannot hide part of textView
,你可以创建一个特定字符串的子字符串并使用它来设置文本。
这样做:
String originalString = "10-Sporting Goods";
String subString = originalString.substring(3);
textView.setText(asubstring);
【讨论】:
以上是关于在 TextView 中仅隐藏部分文本的主要内容,如果未能解决你的问题,请参考以下文章
如何在单击 TextView 中的文本链接时打开浏览器 [重复]
java 添加指向TextView的链接。 Linkify。字体:https://stackoverflow.com/questions/4746293/android-linkify-textvie