如何更改Android微调文本颜色?

时间:2016-10-05 17:14:49

标签: android android-layout android-studio android-spinner

我知道这个问题已被问到很多(见How to customize a Spinner in AndroidHow to change layout of spinner in AndroidHow to change spinner text size and text color?How to change spinner text color

所有答案都建议创建一个custom_spinner.xml文件来完成此任务。这个文件必须是这样的:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top"
android:singleLine="true"
android:textColor="@color/#FFFFFF" />

然而,没有人说在哪里找到这个文件。在这个答案https://stackoverflow.com/a/37859442/5616178中说这个文件必须在Drawable文件夹中,但是当我这样做时,Android Studio会引发“必须声明元素TextView”错误。当我在布局文件夹中找到它时,R.layout也不会解析它。

感谢您的回答。

修改

我能够解决问题。正如你们许多人所说,文件必须位于res/layout内,因为它是一个布局资源。起初,我的代码看起来像这样:

citiesSpinner.setAdapter(
                    new ArrayAdapter<String>(SignUp.this,
                    android.R.layout.custom_spinner,
                    cityNames)
);

当我在构造函数之外声明适配器时,即:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    SignUp.this,
                    R.layout.custom_spinner,
                    cityNames);
citiesSpinner.setAdapter(adapter);

R类能够解析布局。我不知道为什么会这样,如果有人可以解释它会很有用。再次感谢您的回答!

2 个答案:

答案 0 :(得分:2)

  

但是,没有人说在哪里找到这个文件。

这是一个布局资源。它默认会进入res/layout/

  

当我在布局文件夹中找到它时,R.layout也不会解决它。

然后你还有其他一些问题。例如,您的布局资源中可能存在阻止R类重新生成的错误。

答案 1 :(得分:2)

  1. 您的资源文件必须位于布局文件夹
  2. 您的android:id="@android:id/text1"需要android:id="@+id/text1"
  3. 只需声明您的数组,如上面建议的链接:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>this,R.layout.custom_spinner,yourArray);