我一直在互联网上搜索我的问题的解决方案。我需要写一些带有标题的文字。标题应该是大胆的。我在互联网上发现的是如何将整个字符串写成粗体。
E.g。
第1步:打开Android Studio
第2步: ............
在Android中如何做到这一点?它可以完成,还是我必须拆分字符串,例如标题应该是一个单独的字符串。
我在Android上尝试过HTML标记,但我得到了Macintosh:pokedex TimLowe$ npm install
> fsevents@1.1.3 install /Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents
> node install
node-pre-gyp ERR! Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.1.3/fse-v1.1.3-node-v64-darwin-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for fsevents@1.1.3 and node@10.0.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp)
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
action_after_build.target.mk:6: *** target pattern contains no `%'. Stop.
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at ChildProcess.emit (events.js:182:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:225:12)
gyp ERR! System Darwin 15.6.0
gyp ERR! command "/usr/local/Cellar/node/9.11.1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" "--module_name=fse" "--module_path=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64"
gyp ERR! cwd /Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents
gyp ERR! node -v v10.0.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/Cellar/node/9.11.1/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node --module_name=fse --module_path=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:182:13)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:947:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:236:5)
node-pre-gyp ERR! System Darwin 15.6.0
node-pre-gyp ERR! command "/usr/local/Cellar/node/9.11.1/bin/node" "/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents
node-pre-gyp ERR! node -v v10.0.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.39
node-pre-gyp ERR! not ok
Failed to execute '/usr/local/Cellar/node/9.11.1/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node --module_name=fse --module_path=/Users/TimLowe/Desktop/CodeBridge:WDI/gitHub/homeworks/react-pokeapp-homework/pokedex/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64' (1)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 install: `node install`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
up to date in 97.145s
Macintosh:pokedex TimLowe$
这是我在Android中尝试的内容
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
String[] text = new String[2];
text[0] = "<b>" + "Den første bøn er middagsbønnen" + "</b>" + "Den anden bøn er eftermiddagsbønnen"
tvTitle.setText(Html.fromHtml(text[mPage])); //This line triggers the exception
只是标签页面,因为我只希望文字显示在一个标签中。
编辑:
我的班级
mPage
答案 0 :(得分:2)
无需创建单独的文本视图。您可以使用SpannableString
来实现目标。以下是以不同方式更改字符串样式的示例代码。您只需要计算字符串中的起始和结束索引。
SpannableString styledString
= new SpannableString("Large\n\n" // index 0 - 5
+ "Bold\n\n" // index 7 - 11
+ "Underlined\n\n" // index 13 - 23
+ "Italic\n\n" // index 25 - 31
+ "Strikethrough\n\n" // index 33 - 46
+ "Colored\n\n" // index 48 - 55
+ "Highlighted\n\n" // index 57 - 68
+ "K Superscript\n\n" // "Superscript" index 72 - 83
+ "K Subscript\n\n" // "Subscript" index 87 - 96
+ "Url\n\n" // index 98 - 101
+ "Clickable\n\n"); // index 103 - 112
// make the text twice as large
styledString.setSpan(new RelativeSizeSpan(2f), 0, 5, 0);
// make text bold
styledString.setSpan(new StyleSpan(Typeface.BOLD), 7, 11, 0);
// underline text
styledString.setSpan(new UnderlineSpan(), 13, 23, 0);
// make text italic
styledString.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);
styledString.setSpan(new StrikethroughSpan(), 33, 46, 0);
// change text color
styledString.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0);
// highlight text
styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0);
// superscript
styledString.setSpan(new SuperscriptSpan(), 72, 83, 0);
// make the superscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 72, 83, 0);
// subscript
styledString.setSpan(new SubscriptSpan(), 87, 96, 0);
// make the subscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 87, 96, 0);
// url
styledString.setSpan(new URLSpan("http://www.google.com"), 98, 101, 0);
// clickable text
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
// We display a Toast. You could do anything you want here.
Toast.makeText(SpanExample.this,
"Clicked",Toast.LENGTH_SHORT).show();
}
};
styledString.setSpan(clickableSpan, 103, 112, 0);
// this step is mandated for the url and clickable styles.
textView.setMovementMethod(LinkMovementMethod.getInstance());
// make it neat
textView.setGravity(Gravity.CENTER);
tvTitle.setText(styledString);
答案 1 :(得分:0)
您可以使用文字范围。
SpannableStringBuilder builder = new SpannableStringBuilder("Hello, world!");
StyleSpan span = new StyleSpan(android.graphics.Typeface.BOLD);
builder.setSpan(span, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
设置文本时,直接传递构建器而不调用toString()
。