我的应用程序中有很多String Array,我目前正在使用它。我在ListViews中调用那些String-array。我想将String Array Item中的某些String更改为Bold。我已经使用了Html.fromHtml()和“< [DATA []]>”但它没有发生任何事情。我怎么能这样做?
String.java
<string-array name="procedure_items">
<item>• State: This is an emergency </item>
<item>• Give the dispatcher:</item>
<item>\t • The nature of emergency</item>
<item>\t • Your name</item>
<item>\t • Phone number from which you are calling</item>
<item>\t • Your location/location of the emergency</item>
</string-array>
items.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lbl_item"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</TextView>
mainActivity.java
private void populateListView() {
String[] myItems = getResources().getStringArray(R.array.procedure_items);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.items, myItems);
// Configure the list view.
lv_procedures.setAdapter(adapter);
调用时,输出必须为:
•陈述:“这是紧急情况”
•给调度员:
答案 0 :(得分:11)
您可以将<b> </b>
标记用于粗体,并使用\
转义双引号符号:
<string-array name="procedure_items">
<item>• State: <b>\"This is an emergency\"</b></item>
<item>• Give the dispatcher:</item>
<item>\t • <b>The nature of emergency</b></item>
<item>\t • <b>Your name</b></item>
<item>\t • <b>Phone number from which you are calling</b></item>
<item>\t • <b>Your location/location of the emergency</b></item>
</string-array>
并使用getTextArray()
代替getStringArray()
,因为后者会删除样式化的文字信息。因此,示例类如下所示:
package com.example.stringarraybolditem;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<CharSequence>(this, R.layout.items, getResources()
.getTextArray(R.array.procedure_items)));
}
}
结果:
ListPreference
实施ListPreference
标记的 <b></b>
项:
相应的ListPreference
,res / xml / bold_item_test.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<ListPreference
android:entries="@array/procedure_items"
android:entryValues="@array/procedure_items_values"
android:title="@string/bold_item_test" />
</PreferenceScreen>
答案 1 :(得分:0)
尝试使用自定义单元格并放置条件语句以放置包含该文本/字符串的控件所需的任何格式。
这是一个在android中使用自定义单元格的好方法:
http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/