Я пытаюсь построить функцию, где, если страница длинна, цветная схема изменится на черно-белую на каждой странице приложения. Если страница или другая страница долго нажата, изменения должны быть отменены. Вот пример того, что у меня есть. Если вы хотите увидеть более конкретные фрагменты кода, дайте мне знать.Как правильно получить доступ и изменить другие представления
View sigView;
View rootView;
View tunerView;
public boolean pm;
public SharedPreferences sharedPreferences;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
sigView = inflater.inflate(R.layout.time_sig, container,false);
rootView=inflater.inflate(R.layout.activity_metronome,container);
tunerView=inflater.inflate(R.layout.activity_tuner,container);
final TextView tvTempo=(TextView) rootView.findViewById(R.id.metro_disp);
final TextView NumView = (TextView) sigView.findViewById(R.id.Sig_Num);
final TextView tv_note=(TextView) tunerView.findViewById(R.id.tv_note);
final ImageView time_sig_bar= ImageView)sigView.findViewById(R.id.time_sig_bar);
//**Lots more lines just like above for other elements
time_sig_bar.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if (!pm) {
rootView.setBackgroundColor(Color.BLACK);
//**Code to run
pm=true;
sharedPreferences.edit().putBoolean("pm",pm).apply();
} else{
rootView.setBackgroundColor(Color.TRANSPARENT);
//**More code to run
pm=false;
sharedPreferences.edit().putBoolean("pm",pm).apply();
}
//**code is copied for other elements to respond to longclick
Я скопировал и вставил этот код на другие страницы (с небольшими изменениями). На одной из других страниц элементы на этой странице меняются, но на других страницах они не будут меняться. Кроме того, я не знаю, как настроить его, чтобы цвет изменился с другой страницы. Любые идеи, что я делаю неправильно? Спасибо за помощь.