gpt4 book ai didi

android - 如何在 Android 的类中设置 R.style?

转载 作者:行者123 更新时间:2023-11-29 02:11:07 24 4
gpt4 key购买 nike

我知道我们可以在创建 View 时在Android layout.xml 中设置自定义样式。

但是我不知道为什么Android没有设置样式的方法...虽然我知道 View 构造函数可以设置样式,但我不知道AttributeSet是什么...

比如我有一个styles.xml

    <style name="button">
<!-- All -->
<item name="android:layout_width">64dip</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_gravity">center_vertical</item>
<item name="android:layout_marginBottom">1dip</item>
<item name="android:layout_marginLeft">0dip</item>
<item name="android:layout_marginRight">0dip</item>
<item name="android:layout_marginTop">1dip</item>
<item name="android:background">@color/button_background_color_list</item>
<!-- Image -->
<item name="android:button">@null</item>
<item name="android:drawablePadding">-5dip</item>
<!-- Text -->
<item name="android:textColor">@color/button_label_color_list</item>
<item name="android:textSize">9dip</item>
<item name="android:textStyle">normal</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:padding">0dip</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">marquee</item>
<item name="android:marqueeRepeatLimit">marquee_forever</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
</style>

<!-- RadioButton 1 -->
<style name="button_1" parent="@style/button">
<item name="android:drawableTop">@drawable/button_1_selector</item>
<item name="android:text">One</item>
</style>

<!-- RadioButton 2 -->
<style name="button_2" parent="@style/button">
<item name="android:drawableTop">@drawable/button_2_selector</item>
<item name="android:text">Two</item>
</style>

我可以像这样使用 layout.xml 中的样式,

<RadioButton android:id="@+id/radiobutton_1"
style="@style/button_1"/>
<RadioButton android:id="@+id/radiobutton_2"
style="@style/button_2"/>

但是我不能在像这样的类中使用样式,

RadioButton rb = new RadioButton(this);
rb.setStyle(R.style.button_1);

谁能帮帮我??

最后,我得到了修复它的解决方案...,但这不是一个好的解决方案。

我创建了一个 custom_layout.xml,

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_button_1"
style="@style/button_1">
</Button>

并在类中创建它,

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = (View) inflater.inflate(R.layout.custom_layout, null);
Button rb = (Button)view.findViewById(R.id.custom_button_1);

然后,我可以使用我自己的风格。

最佳答案

您可以在设置内容 View 之前通过应用 setTheme(R.style.your_theme) 来更改整个主题。

引用这个链接

http://mrbool.com/how-to-change-the-layout-theme-of-an-android-application/25837

关于android - 如何在 Android 的类中设置 R.style?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com