Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как изменит background правильно?

#java #android


За ранее я извиняюсь, Я не силён на русском языке. Я создаю приложения. Ну приложения
почти готово но у меня возникло такая проблема. В приложение в настройках есть функция
изменения тему(стиль) интерфейса и в приложение есть много button который изменяет
свои background. Ну вот когда я изменяю тему интерфейса несколько раз у меня возникает
утечки памяти.

Что бы изменит я обновляю главный activity.

activiy.recreate();


Потом создал класс который унаследовал класс Button. Это для того чтобы изменить
всех button;
Вот код:

public class ButtonParm extends android.support.v7.widget.AppCompatButton {

public ButtonParm(Context context) {
    super(context);
    setup(context);
}

public ButtonParm(Context context, AttributeSet attrs) {
    super(context, attrs);
    setup(context);
}

public ButtonParm(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    setup(context);
}

private void setup(Context context) {
    SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(context);
    int parm= mPreferences.getInt("THEME", 1);

    switch (parm){
        case 1:
            setBackground(getResources().getDrawable(R.drawable.btn_theme_one));
            break;
        case 2:
            setBackground(getResources().getDrawable(R.drawable.btn_theme_two));
            break;
        case 3:
            setBackground(getResources().getDrawable(R.drawable.btn_theme_tree));
            break;
        case 4:
            setBackground(getResources().getDrawable(R.drawable.btn_theme_four));
            break;
        default:
            setBackground(getResources().getDrawable(R.drawable.btn_theme_one));
            break;
    }
}


}

ну вот я уже несколько дней не могу решить эту проблему. Коллеги прошу ваши помощи.
    


Ответы

Ответ 1



Здесь, по ссылке я как то давал развернутый ответ на этот вопрос. Возможно и вам пригодится.

Комментариев нет:

Отправить комментарий