Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在活动中为每个编辑文本应用自定义主题_Android_Themes - Fatal编程技术网

Android 在活动中为每个编辑文本应用自定义主题

Android 在活动中为每个编辑文本应用自定义主题,android,themes,Android,Themes,我想更改应用程序中所有编辑文本的背景形状。我在drawable文件夹中创建了xml文件,如下所示 <shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightR

我想更改应用程序中所有编辑文本的背景形状。我在drawable文件夹中创建了xml文件,如下所示

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp"/>
    <stroke android:width="1sp" android:color="@android:color/darker_gray"/>
    <solid  android:color="@android:color/white"/>
    <padding android:top="5dp" android:left="5dp" android:right="5dp" android:bottom="5dp"/>
</shape>

我在styles.xml文件中创建了样式标记

     <style name="editTxt_theme" parent="@android:style/Widget.EditText">
        <item name="android:background">@drawable/edittxt_shape</item>
    </style>

@可绘制/编辑TXT_形

我把这个主题应用到我的活动中。但它应用了所有其他小部件。有什么问题吗


谢谢。

首先,您需要在
style.xml
中定义应用程序的主题,并使用
android:editTextStyle
为所有
EditText
视图定义自定义样式,如下所示:

<style name="MyAppTheme" parent="android:Theme.Light">
    <item name="android:editTextStyle">@style/CustomEditTextStyle</item>
</style>

<style name="CustomEditTextStyle">
    <item name="android:background">@drawable/edittxt_shape</item>
    <item name="android:clickable">true</item>
    <item name="android:enabled">true</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:gravity">center_vertical</item>
</style>

@样式/自定义编辑文本样式
@可绘制/编辑TXT_形
真的
真的
真的
真的
中心垂直
现在只剩下告诉你的应用程序在清单中使用你的主题:

<application
    android:theme="@style/MyAppTheme" >
    ...
</application>

...

这样,您就不需要在所有的
EditText
视图中添加
style
属性。

首先,您需要在
style.xml
中定义应用程序的主题,并使用
android:editTextStyle
为所有
EditText
视图定义自定义样式,如下:

<style name="MyAppTheme" parent="android:Theme.Light">
    <item name="android:editTextStyle">@style/CustomEditTextStyle</item>
</style>

<style name="CustomEditTextStyle">
    <item name="android:background">@drawable/edittxt_shape</item>
    <item name="android:clickable">true</item>
    <item name="android:enabled">true</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:gravity">center_vertical</item>
</style>

@样式/自定义编辑文本样式
@可绘制/编辑TXT_形
真的
真的
真的
真的
中心垂直
现在只剩下告诉你的应用程序在清单中使用你的主题:

<application
    android:theme="@style/MyAppTheme" >
    ...
</application>

...

这样,您就不需要在所有的
EditText
视图上添加
style
属性。

“但它应用了所有其他小部件”这是什么意思??你的应用程序有小部件吗?你的小部件的编辑文本样式也改变了吗?我的意思是所有的文本视图和操作栏都改变了。“但它应用了所有其他小部件”你这是什么意思??你的应用程序有小部件吗?你的小部件的编辑文本样式也改变了吗?我的意思是所有的文本视图和操作栏都改变了。我还没有找到一个很好的参考,但是你可以四处窥探。模式通常是
viewmestyle
(例如
buttonStyle
textviewmestyle
),但我无法在编辑文本中输入值。和操作栏。您也可以在自定义样式中设置
EditText
的其他属性。请参阅上面更新的答案,并尝试将
android:enabled
属性设置为true。您可以在其中定义与各个视图相关的任何内容。如果它仍然不起作用,那么发布更新的代码会有所帮助。这就是我一直在做的,从来没有遇到过问题。不客气!享受这个新把戏吧,它对自定义主题非常有用。:)我还没有找到一个很好的参考书,但你可以四处窥探。模式通常是
viewmestyle
(例如
buttonStyle
textviewmestyle
),但我无法在编辑文本中输入值。和操作栏。您也可以在自定义样式中设置
EditText
的其他属性。请参阅上面更新的答案,并尝试将
android:enabled
属性设置为true。您可以在其中定义与各个视图相关的任何内容。如果它仍然不起作用,那么发布更新的代码会有所帮助。这就是我一直在做的,从来没有遇到过问题。不客气!享受这个新把戏吧,它对自定义主题非常有用。:)