Я новичок и прошу помощи. Есть ThemesActivity в котором прописано динамическое изменение темы при выборе одного из radiobutton. Есть файл Utils.Java, который отвечает за смену темы и перезапуск activity. Как мне сделать так, чтобы при выборе (например dark radiobutton) у меня тема менялась не только в ThemesActivity, но и в остальных activity тоже? У меня есть еще MainActivity и InfoActivity.
Utils.Java
package com.example.calc;
import android.app.Activity;
import android.content.Intent;
public class Utils {
private static int sTheme;
public final static int THEME_DEFAULT = 0;
public final static int THEME_DARK = 1;
public final static int THEME_AMOLED = 2;
/**
* Set the theme of the Activity, and restart it by creating a new Activity of the same type.
*/
public static void changeToTheme(Activity activity, int theme)
{
sTheme = theme;
activity.finish();
activity.startActivity(new Intent(activity, activity.getClass()));
}
/** Set the theme of the activity, according to the configuration. */
public static void onActivityCreateSetTheme(Activity activity)
{
switch (sTheme)
{
default:
case THEME_DEFAULT:
activity.setTheme(R.style.LightTheme);
break;
case THEME_DARK:
activity.setTheme(R.style.DarkTheme);
break;
case THEME_AMOLED:
activity.setTheme(R.style.AMOLEDTheme);
break;
}
}
}
ThemesActivity.Java
package com.example.calc;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
import android.widget.RadioGroup;
import android.widget.Toast;
public class ThemesActivity extends AppCompatActivity {
private Toolbar toolbar;
RadioGroup radioGroup;
static final private int CHOOSE_THIEF = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Utils.onActivityCreateSetTheme(this);
setContentView(R.layout.activity_themes);
toolbar = (Toolbar) findViewById(R.id.my_toolbar);
toolbar.setTitleTextColor(0xFF616770);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Темы");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.clearCheck();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case -1:
Toast.makeText(getApplicationContext(), "Ничего не выбрано",
Toast.LENGTH_SHORT).show();
break;
case R.id.light:
Utils.changeToTheme(ThemesActivity.this, Utils.THEME_DEFAULT);
Toast.makeText(getApplicationContext(), "Light тема",
Toast.LENGTH_SHORT).show();
break;
case R.id.amoled:
Utils.changeToTheme(ThemesActivity.this, Utils.THEME_AMOLED);
Toast.makeText(getApplicationContext(), "AMOLED тема",
Toast.LENGTH_SHORT).show();
break;
case R.id.dark:
Utils.changeToTheme(ThemesActivity.this, Utils.THEME_DARK);
Toast.makeText(getApplicationContext(), "Dark тема",
Toast.LENGTH_SHORT).show();
break;
case R.id.user1:
Toast t = Toast.makeText(ThemesActivity.this, "HumanZ тема", Toast.LENGTH_SHORT);
t.setGravity(Gravity.CENTER,0,0);
t.show();
Toast t1 = Toast.makeText(ThemesActivity.this, "Не работает", Toast.LENGTH_SHORT);
t1.setGravity(Gravity.CENTER,0,150);
t1.show();
break;
default:
break;
}
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
startActivityForResult(intent, CHOOSE_THIEF);
overridePendingTransition(R.anim.right_in,R.anim.alpha16);
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно начал учить Java, изучал if, решил вот такое написатьПри вводе правильного username и password, которые соответствуют adminUsername и adminPassword, всё-равно...
Есть массив элементов: у каждого есть координаты, bitmap и список анимаций (поворот, перемещение), который элемент должен выполнитьВсе в потоке...
Из класса Graphics2D я использую методы scale(), rotate(), translate()Есть ли способ посмотреть полный исходный код этих методов, чтобы в дальнейшем я смогла...