我有简单的HTML:
<h2>Title</h2><br>
<p>description here</p>
Run Code Online (Sandbox Code Playgroud)
我想在其中显示HTML样式的文本TextView.这该怎么做?
我的内部有一些固定的字符串strings.xml,例如:
<resources>
<string name="somestring">
<B>Title</B><BR/>
Content
</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
在我的布局中,我有一个TextView我想填充html格式的字符串.
<TextView android:id="@+id/formattedtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/htmlstring"/>
Run Code Online (Sandbox Code Playgroud)
如果我这样做,内容formattedtext只是somestring剥离任何html标签的内容,因此没有格式化.
我知道可以用编程方式设置格式化文本
.setText(Html.fromHtml(somestring));
因为我在我的程序的其他部分使用它,它按预期工作.
要调用这个函数我需要一个Activity,但是目前我的布局只是一个简单的或多或少的静态视图,我希望保持这种方式,以节省我创建一个Activity刚刚设置一些的开销文本.
我忽略了一些明显的东西吗 它根本不可能吗?欢迎任何帮助或变通方法!
编辑:刚试了一些东西,似乎xml中的HTML格式有一些限制:
标签必须写成小写
这里提到的一些标签 不起作用,例如<br/>(可以改为使用\n)
您好我正在解析xml然后将其加载到Web视图,解析后我创建了四个字符串,以便我可以将所有字符串追加到一个视图.我能够在Web视图上获得两个视图,但不能获得前两个字符串.
请用我的代码建议我,我在哪里出错,在web视图上获取格式化的html字符串的正确方法是什么.请看看我的代码并帮助我解决这个问题.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String chapterTitle = "";
String SubChapterTitle="";
String chapterIntro ="";
String chapterContent="";
View view = convertView;
if (convertView == null) {
// view = inflater.inflate(resourceid, null);
view = getLayoutInflater().inflate(R.layout.webviewitem, null);
}
synchronized (view) {
WebView wv = (WebView) view.findViewById(R.id.contentWebView);
WebSettings settings = wv.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setJavaScriptEnabled(true);
settings.setDefaultZoom(ZoomDensity.FAR);
// wv.setBackgroundColor(0);
wv.setVerticalScrollBarEnabled(false);
wv.setHorizontalScrollBarEnabled(false);
/*String txtChapTitle = Intro.book.getsecretList().get(position)
.getChtitle().toString();*/
if (!(Intro.book.getsecretList().get(position).getChtitle()
.toString().equals(""))){
chapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position)
.getChtitle().toString()+"</font></b>";
} …Run Code Online (Sandbox Code Playgroud) 我的意思是,是否可以将单词字符串中的"This text is blue"更改为蓝色?一定有办法......
<TextView
android:gravity="left"
android:padding="3dip"
android:text="This text is white. This text is blue."
android:textColor="#ffffff"
android:textSize="22dp"/>
Run Code Online (Sandbox Code Playgroud) 我在对话框中显示了一些信息.它就像Title,然后在它下面; 标题,然后在它下面的文字.同样明智的是,有4个标题和4个描述要显示.它应该是这样的
描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述
描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述;描述
正如您所看到的,有大胆的文本,带下划线的文本,换行符等.我想将这种文本添加到警告框中,所以下面是我尝试过的.
TextView msg = new TextView(this);
msg.setText("<html><u>Message</u></html>")
AlertDialog.Builder ab = new AlertDialog.Builder(this);
ab.setTitle("Title");
ab.setView(msg);
ab.setCancelable(false);
//rest of the code
Run Code Online (Sandbox Code Playgroud)
然而,这个技巧不起作用.发生的事情是,所有的HTML标签都显示出来了!文字不清楚!好像它混合了AlertBox默认颜色的背景,黑色.我该如何解决这个问题?请帮忙!
PS:或者我使用了错误的方法?错误的对话框?
我正在android studio上的应用程序上工作,我需要下标和上标, textview而且我知道如何以编程方式进行操作,例如:
Html.fromHtml(r7.getText().toString()+" m<sup><small>2</small></sup>")
Run Code Online (Sandbox Code Playgroud)
但是当写它的文本textview给我这个错误:
错误:(104)XML解析错误:格式不正确(无效的令牌)
那么如何解决这个问题,请???
android ×6
textview ×3
html ×2
java ×2
eclipse ×1
formatting ×1
string ×1
textcolor ×1
webview ×1
xml-parsing ×1