Как написать переменную из синглтона в Firebase - PullRequest
0 голосов
/ 30 июня 2018

Есть программа, в которой я могу изменить переменную, используя одиночный код. Создано 2 актива, где пользователи могут изменять эту переменную. Как записать переменную, которая изменяется в базу данных Firebase. Я пытался использовать addValueEventListener (новый метод ValueEventListener ().

Где я могу использовать методы firebase? В основной класс или в синглтон? А как написать переменную?

Основная деятельность

public class MainActivity extends AppCompatActivity {
private BubbleWrap bubbleWrap;
private TextView txtintent;
final int REQUEST_CODE_661_1 = 1;
private int bbbbb;
private  TextView txt;
private String bubul;
FirebaseDatabase database=FirebaseDatabase.getInstance();
final DatabaseReference AllFacebase =database.getReference("всего").child("йй");


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     txt=findViewById(R.id.textView);
    bubbleWrap=BubbleWrap.getInstance();
    setupAddMoreButton();
    setupPopActivityButton();
    setupCocActivityButton();
    txtintent=(TextView)findViewById(R.id.txtintent);
    AllFacebase.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
             bubul=String.valueOf(dataSnapshot.getValue());
            txtintent.setText(bubul);


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

@Override
protected void onResume() {
    super.onResume();
    updateUI();


}
private void setupAddMoreButton(){
    Button btn=findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            bubbleWrap.addMoreBubbles();
            updateUI();

        }
    });
}
private  void setupPopActivityButton(){
  Button btn=findViewById(R.id.button2);
  btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {

      }
  });
}
private  void setupCocActivityButton(){
    Button btn=findViewById(R.id.buttoncoc);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
}
private void updateUI(){

    txtintent.setText(String.format(Locale.getDefault(),"%d",
            bubbleWrap.getNumBubbles()));

}

}

второе занятие

активность, где я меняю переменную, я хочу написать в Firebase

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pop);
    bubbleWrap=BubbleWrap.getInstance();
    final TextView txt=findViewById(R.id.textView2);
    setupPopButton();
    updateUI();
    Intent intent=new Intent();
    intent.putExtra("bubles", bubbleWrap.getNumBubbles());

}

private void setupPopButton(){
    Button btn=findViewById(R.id.cocbtb);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            bubbleWrap.popBubble();
            updateUI();

        }
    });
}
private void updateUI(){


    TextView txt=findViewById(R.id.textView2);
    txt.setText(String.format(Locale.getDefault(),
            "Bubbles left: %d",
            bubbleWrap.getNumBubbles()));

}

}

Singleton

public class BubbleWrap {
private static final int ADD_MORE_BUBBLES = 10;
private int numBubbles;
private static BubbleWrap instance;

private BubbleWrap(){

}
public static BubbleWrap getInstance(){
    if(instance==null){
        instance=new BubbleWrap();
    }

     return instance;
}

public int getNumBubbles() {

    return numBubbles;
}
public  void addMoreBubbles(){
    numBubbles+=ADD_MORE_BUBBLES;

}

public void popBubble() {

    numBubbles--;



}
public  void saveintent(){

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...