如何在 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 主题和 google cast 的 Android 应用吗?
android Theme.Holo.Dialog 将蓝线变为橙色
Android Studio:我还可以在清单中使用带有appcompat主题的HOLO Light DatePicker吗?