如何在 Holo 主题 Api 11-17 Android 中以编程方式将 EditText 背景设置为默认值

Posted

技术标签:

【中文标题】如何在 Holo 主题 Api 11-17 Android 中以编程方式将 EditText 背景设置为默认值【英文标题】:How to programmatically set EditText background to default in Holo theme Api 11-17 Android 【发布时间】:2013-08-07 10:04:35 【问题描述】:

自从我用了

EditText et=new EditText(this);
locationEditText.setBackgroundDrawable(et.getBackground());

setBackgroundDrawable(Drwable) 在 Api 16 中已被弃用,因为它不能使用 setBackground(Drwable),因为它是在 api 16 中添加的,而我使用的是比这更早的版本

所以我只剩下两个函数了

分别是:setBackgroundColor(int color)setBackgroundResource(int resid)

那么如何在 Holo Light Theme 中将其设置为默认的EditText

【问题讨论】:

【参考方案1】:

使用与 setBackgroundDrawable(Drwable) 完成相同工作的 setBackground(Drawable drawable)

编辑:感谢 Warpzit 提供此代码(source):

EditText et=new EditText(this);

int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) 
    setBackgroundDrawable(et.getBackground());
 else 
    setBackground(et.getBackground());

您可以找到更多信息in this question

【讨论】:

不能在 Api 16 之前不存在此功能,而我的 API 范围是 11-17 仍然是如何在最新版本 16+ APIs 中将 EditText 的背景设置为 Holo 默认 EditText 主题的问题 对不起,但我不明白:仍然是如何将最新版本 16+ API 中的 EditText 的背景设置为 Holo 默认 EditText 主题的问题。我的代码应该只使用警告建议。【参考方案2】:

这可能对你有帮助

<EditText
    android:layout_
    android:layout_
    style="@android:style/Widget.Holo.EditText"/>

【讨论】:

需要它的代码而不是 XML... 无论如何谢谢【参考方案3】:

我的建议是使用您需要分配的样式为edittext 创建一个模板布局xml 文件,并在您需要时在代码中对其进行扩充。 在 XML 中

在代码中使用这个:

EditText et = (EditText )getLayoutInflater().inflate(R.layout.edtemplate, null);

参考更多 android set style in code

【讨论】:

以上是关于如何在 Holo 主题 Api 11-17 Android 中以编程方式将 EditText 背景设置为默认值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中更改 SettingsActivity 的主题?

Holo.Light 主题但带有白色溢出点?

Android系统主题总结和使用

可以同时使用 Holo 主题和 google cast 的 Android 应用吗?

android Theme.Holo.Dialog 将蓝线变为橙色

Android Studio:我还可以在清单中使用带有appcompat主题的HOLO Light DatePicker吗?