第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

切換主題,

切換主題,

叮當(dāng)貓咪 2023-08-16 15:52:06
我想在我的應(yīng)用程序中添加多個(gè)主題,以允許用戶在運(yùn)行時(shí)更改應(yīng)用程序主題。我在網(wǎng)上找到了代碼,已成功將其添加到我的應(yīng)用程序中,但我只能更改一項(xiàng)活動(dòng)的主題,這并不是我的真正意圖。當(dāng)用戶在主題設(shè)置活動(dòng)中更改主題時(shí),我需要將該更改應(yīng)用到所有活動(dòng)中。ThemeActivity.java @Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    themeUtils.onActivityCreateSetTheme(this);    setContentView(R.layout.activity_theme);    blackbtn = findViewById(R.id.blackbutton);    bluebtn = findViewById(R.id.bluebutton);    blackbtn.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            themeUtils.changeToTheme(ThemeActivity.this, themeUtils.BLACK);        }    });    bluebtn.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            themeUtils.changeToTheme(ThemeActivity.this, themeUtils.BLUE);        }    });}ThemeUtils.javapublic class themeUtils{private static int cTheme;public final static int BLACK = 0;public final static int BLUE = 1;public static void changeToTheme(Activity activity, int theme){    cTheme = theme;    activity.finish();    activity.startActivity(new Intent(activity, activity.getClass()));}public static void onActivityCreateSetTheme(Activity activity){    switch (cTheme)    {        default:        case BLACK:            activity.setTheme(R.style.BlackTheme);            break;        case BLUE:            activity.setTheme(R.style.BlueTheme);            break;    }
查看完整描述

2 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

使用屬性值設(shè)置顏色

例如,這是 textview 的顏色

<attr name="textviewcolor" format="color"></attr>

在 style.xml 中為不同的主題選擇創(chuàng)建不同的樣式

這是深色主題樣式的文本顏色

<style name="AppTheme.Dark" parent="Theme.AppCompat.Light.NoActionBar"><item name="textviewcolor">#fff</item></style>

這是默認(rèn)主題樣式的文本顏色

<style name="AppTheme.Defult" parent="Theme.AppCompat.Light.NoActionBar"><item name="textviewcolor">#000</item></style>

使用此屬性值(textviewcolor)到textview來(lái)設(shè)置顏色,如下所示

                      <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="text"
                        android:textColor="?attr/textviewcolor"/>

您只需在按鈕單擊中更改共享首選項(xiàng)中的主題名稱(chēng)并刷新活動(dòng),其余的事情將在下面提到您將如何做到這一點(diǎn)..

首先像這樣創(chuàng)建主題util類(lèi)


public class ThemeUtil {


public static final int THEME_DEFAULT=1;

public static final int THEME_DARK=2;

public static final int ALERTTHEME=3;

public static final int ALERTTHEMEDARK=4;




public static int getThemeId(int theme){

    int themeId=0;

    switch (theme){


        case THEME_DARK:

            themeId = R.style.AppTheme_Dark;

            break;


        case THEME_DEFAULT :

            themeId = R.style.AppTheme;

            break;


        default:

            break;

    }

    return themeId;

}}

建議:使用共享首選項(xiàng)來(lái)指定主題的名稱(chēng)


然后創(chuàng)建一個(gè)抽象類(lèi),通過(guò)擴(kuò)展該類(lèi)將主題設(shè)置為所有活動(dòng)


public class ChangethemeActivity extends AppCompatActivity{


@Override

protected void onCreate(@Nullable Bundle savedInstanceState){

    super.onCreate(savedInstanceState);


    //get your theme name using sharedpreference and check what you have saved in theme name value


    if(dark){

    setTheme(ThemeUtil.getThemeId(1));

    }

    else{

      setTheme(ThemeUtil.getThemeId(2));

    }  }}}

最后:在要更改主題的活動(dòng)中使用 ChangethemeActivity而不是 AppCompatActivity


這是我實(shí)現(xiàn)應(yīng)用程序主題更改功能的方式,請(qǐng)告訴我這是否解決了您的問(wèn)題


查看完整回答
反對(duì) 回復(fù) 2023-08-16
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

創(chuàng)建一個(gè)基本活動(dòng)并從中擴(kuò)展所有其他活動(dòng),然后在基本活動(dòng)的 onCreate 方法中設(shè)置主題,例如:


public abstract class BaseActivity extends AppCompatActivity{

    private int theme;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setTheme(theme);

    }

}


private void setTheme(int theme){

    this.theme = theme;

}

然后,當(dāng)您想要更改主題時(shí),只需在 theme 中設(shè)置另一個(gè)主題資源 id 并重新啟動(dòng)您的 Activity:


setTheme(R.style.AppThemeChristmas);

Intent intent = getIntent();

finish();

startActivity(intent);


查看完整回答
反對(duì) 回復(fù) 2023-08-16
  • 2 回答
  • 0 關(guān)注
  • 157 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)