更改xml string-array中项目的字体颜色

4
我正在尝试在弹出窗口中显示旋转器。我希望每个下拉项的一部分文本为绿色。更具体地说,一个选项应该看起来像这样:“交易类型:现金支付、见面交易”。我想让“交易类型”这几个词是绿色的,其余词汇是黑色的。我尝试了字体颜色属性,但它没有起作用。
string-array xml 文件的代码:
 <?xml version="1.0" encoding="utf-8"?>
<resources>
   <string-array name="payment_list">
    <item><font color="#00ff00">Transaction Type: </font>Pay Cash, Meet Up</item>
    <item><font color="#00ff00">Transaction Type: </font>Credit Card, Meet Up</item>
    <item><font color="#00ff00">Transaction Type: </font>Credit Card, Ship to Me</item>
</string-array>

弹出窗口的代码:

final Button makeoffer = (Button) view.findViewById(R.id.make_offer);
    makeoffer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LayoutInflater layoutInflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View popupView = layoutInflater.inflate(R.layout.offer_popup, null);
            final PopupWindow popupWindow = new PopupWindow(popupView,LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
            EditText mEditText = (EditText) popupView.findViewById(R.id.payment_field);
            popupView.clearFocus();
            mEditText.requestFocus();
            popupWindow.setFocusable(true);
            popupWindow.update();

            final Spinner spinner1 = (Spinner) popupView.findViewById(R.id.transaction_spinner);
            spinner1.setAdapter(new ArrayAdapter<CharSequence>(getActivity(), R.layout.support_simple_spinner_dropdown_item,getActivity().getResources().getTextArray(R.array.payment_list)));

            Button btnDismiss = (Button)popupView.findViewById(R.id.cancel2);
            btnDismiss.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                }
            });
            popupWindow.showAtLocation(popupView, Gravity.NO_GRAVITY, 0, 0);
        }
    });

这个问题应该会对你有所帮助:https://dev59.com/CXE85IYBdhLWcg3wqleE。 - SirGregg
@SirGregg 我添加了 CDATA 块,但是我如何使它实际呈现微调器中的 HTML 属性? - Nikhil
1个回答

1

对于其他人的阅读:感谢@SirGregg指导我正确的方向。 我做的第一件事是将CDATA块添加到我的字符串数组XML文件中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="payment_list">
    <item><![CDATA[<font color="#00ff00">Transaction Type: </font>]]>Pay Cash, Meet Up</item>
    <item><![CDATA[<font color="#00ff00">Transaction Type: </font>]]>Credit Card, Meet Up</item>
    <item><![CDATA[<font color="#00ff00">Transaction Type: </font>]]>Credit Card, Ship to Me</item>
  </string-array>
</resources>

然后,我回到添加旋转器的代码,并进行了更改:
final Spinner spinner1 = (Spinner) popupView.findViewById(R.id.transaction_spinner);
String[] array = getActivity().getResources().getStringArray(R.array.payment_list);
Spanned[] spannedStrings = new Spanned[3];
for(int i=0; i<array.length; i++){
                spannedStrings[i] = Html.fromHtml(array[i]);
            }
spinner1.setAdapter(new ArrayAdapter<CharSequence>(getActivity(), R.layout.support_simple_spinner_dropdown_item,spannedStrings));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接