По сути, я получаю данные внешнего датчика из базы данных Firebase Realtime. То, что я пытаюсь сделать, - это отправить эти данные из моей основной деятельности в другую деятельность одновременно.
Я пытался использовать общие настройки, но он обновляется только один раз после нажатия кнопки. Я хочу, чтобы второе действие получало изменения, которые обновляются в основном действии.
Основной код активности:
reff.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String s1=dataSnapshot.child("sensor1").getValue().toString();
String s2=dataSnapshot.child("sensor2").getValue().toString();
et1.setText(s1);
SharedPreferences.Editor editor=sp.edit();
editor.putString("sensor1data",s1);
editor.apply();
Второй код активности;
sp=getSharedPreferences("s",MODE_PRIVATE);
cc=sp.getString("sensor1data","");
tv.setText(cc);
и SharedPreferences sp;
объявлены глобально в обеих операциях
Я также пытался добавить слушателя, но недоступно, постоянно получал сообщение об ошибке при использовании этой строки:
sp.registerOnSharedPreferenceChangeListener(this);
ошибка для строки выше:
registerOnSharedPreferenceChangeListener cannot be applied to (android.content.SharedPreferences.OnSharedPreferenceChangeListener) in **SharedPreferences** cannot be applied to (com.example.s1.MainActivity)
Я также пробовал таким образом, но также получил ошибку во второй строке, где он сказал, что не может разрешить символ sharedPreferenceChangeListener
во второй строке.
SharedPreferences spla=this.getSharedPreferences("s",MODE_PRIVATE);
spla.registerOnSharedPreferenceChangeListener(`sharedPreferenceChangeListener`);
SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListner =new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
}
};