在Android中将字符串数组项更改为粗体

时间:2013-10-07 00:52:08

标签: android arrays

我的应用程序中有很多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);

调用时,输出必须为:

•陈述:“这是紧急情况

•给调度员:

  • 紧急情况的性质
  • 您的姓名
  • 您致电的电话号码
  • 您的紧急位置/位置

2 个答案:

答案 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)));
    }
}

结果:

String Array Bold Item


以下是原始ListPreference实施

带有ListPreference标记的

<b></b>项:

ListPreference with items with bold effect

相应的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/