2017-10-22 5 views
1

これは私のコードです。私は2つのアンドロイド携帯電話と2つのアカウントを持っていますが、pres1であるimage1をクリックして他の電話をクリックすると、スタックされません。火災基地では1のままです。imgをクリックしたときにfirebaseに+1を加える方法android

誰でも私にそれを正しく行う方法を教えてもらえますか?

次にあなたがfirebaseで作業している

private ImageView pres1, pres2; 

long count; 

DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference("VoteResults"); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_vote_now); 

    pres1 = (ImageView) findViewById(R.id.vote_president1); 
    pres2 = (ImageView) findViewById(R.id.vote_president2); 

    pres2.setOnClickListener(this); 
    pres1.setOnClickListener(this); 
} 

@Override 
public void onClick(View view) { 

    if(view.getId() == R.id.vote_president1){ 

     final DatabaseReference mCounterRef = mRootRef.child("VotePresident"); 
     mCounterRef.setValue(++count); 
     startActivity(new Intent(VoteNow.this,VicePresInternal.class)); 
     finish(); 
    }else if(view.getId() == R.id.vote_president2) { 
     final DatabaseReference mCounterRef = mRootRef.child("VotePresident2"); 
     mCounterRef.setValue(++count); 
     startActivity(new Intent(VoteNow.this, VicePresInternal.class)); 
     finish(); 
    } 
} 

答えて

0

ありがとう、最良の方法は、POJOモデルでの作業にある - プレーン古いJavaオブジェクト。

だから、あなたはPOJOクラス

@IgnoreExtraProperties 
    public class President { 

     public String uuid = "XXXX-XXXX-XXXX-XXXX"; 
     public int voteCount = 0; 

     public Post() { 
      // Default constructor required for calls to 
      DataSnapshot.getValue(Post.class) 
     } 

     public President(String uuid) { 
      this.uuid = uuid; 
     } 
    } 

を作成する必要がありますそして感謝

ValueEventListener voteListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // Get Post object and use the values to update the UI 
     President president = dataSnapshot.getValue(President.class); 
     // ... 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     // Getting Post failed, log a message 
     Log.w(TAG, "loadPost:onCancelled", databaseError.toException()); 
     // ... 
    } 
}; 
mRootRef.addValueEventListener(postListener); 
+1

データベース参照にあなたにaddValueEventListener()を追加した場合、あなたはもちろん、DataSnapshotクラスで動作することができますが、私は本当にcoudntそれを理解する..btw私はJavaとfirebaseとAndroidのスタジオに新しい私は別のJavaクラスの大統領を作成する必要がありますか?それとも私のコードの下に置くだけ?ありがとうございます –

+0

私たちは皆、初心者でした))あなたはプロジェクトにこのpojoを入れて置くことができます。しかし、ファイアベースのdB構造からフィールドを追加してください。あなたはfirebaseとサービスhttp://www.jsonschema2pojo.org/からJsonをJavaクラスに変換することができます。 – Scrobot

関連する問題