2017-01-31 2 views
1

Я делаю приложение для голосования, в котором хранится щелчок в firebase. При нажатии любой из двух кнопок она должна перейти к общей активности макета (vote.java). Это происходит для Btn1, но приложение падает при нажатии Btn2.Открыть различные действия для разных нажатий кнопок

MainActivity.java

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.os.Handler; 
import com.firebase.client.Firebase; 
public class Main2Activity extends AppCompatActivity { 
private Firebase mRootRef; 
private Button mBtn1; 
private Button mBtn2; 
int counter = 0; 
int counter1 = 0; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Firebase.setAndroidContext(this); 
    mBtn1 = (Button) findViewById(R.id.btn1); 
    mBtn2 = (Button) findViewById(R.id.btn2); 
    mBtn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (v.equals(mBtn1)) { 
       Intent i1= new Intent(Main2Activity.this, Votes.class); 
       startActivity(i1); 
       mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 1"); 
       Firebase mRefChild = mRootRef.child("Votes"); 
       counter++; 
       mRefChild.setValue(counter); 

      } 

      mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 2"); 
      mBtn2.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if (v.equals(mBtn2)) { 
         Intent i2= new Intent(Main2Activity.this, Votes.class); 
         startActivity(i2); 
         Firebase mRefChild = mRootRef.child("Votes"); 
         counter1++; 
         mRefChild.setValue(counter1); 

        } 
       } 

      }); 
     } 
    }); 

}} 

Спасибо.

+0

трассировки стека, пожалуйста, из вашего журнала кошки. – Divers

+1

Ваш второй прослушиватель кнопок находится внутри 1-го прослушивателя, попробуйте поставить снаружи с первого –

ответ

1

Это потому, что клик для кнопки 2 находится внутри прослушивателя кликов для кнопки 1. Вам нужно инициализировать разных прослушивателей onClick для разных кнопок.

Попробуйте это:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     Firebase.setAndroidContext(this); 
     mBtn1 = (Button) findViewById(R.id.btn1); 
     mBtn2 = (Button) findViewById(R.id.btn2); 
     mBtn1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 

       Intent i1= new Intent(Main2Activity.this, Voted.class); 
       startActivity(i1); 
       mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 1"); 
       Firebase mRefChild = mRootRef.child("Votes"); 
       counter++; 
       mRefChild.setValue(counter); 
      }); 

     mBtn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 2"); 
       Intent i2= new Intent(Main2Activity.this, Voted2.class); 
       startActivity(i2); 
       Firebase mRefChild = mRootRef.child("Votes"); 
       counter1++; 
       mRefChild.setValue(counter1); 
      } 
     }); 
1

Это должно исправить:

public class Main2Activity extends AppCompatActivity { 
private Firebase mRootRef; 
private Button mBtn1; 
private Button mBtn2; 
int counter = 0; 
int counter1 = 0; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Firebase.setAndroidContext(this); 
    mBtn1 = (Button) findViewById(R.id.btn1); 
    mBtn2 = (Button) findViewById(R.id.btn2); 
    mBtn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 

      Intent i1= new Intent(Main2Activity.this, Voted.class); 
      startActivity(i1); 
      mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 1"); 
      Firebase mRefChild = mRootRef.child("Votes"); 
      counter++; 
      mRefChild.setValue(counter); 
     }); 


     mBtn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 2"); 
       Intent i2= new Intent(Main2Activity.this, Voted2.class); 
       startActivity(i2); 
       Firebase mRefChild = mRootRef.child("Votes"); 
       counter1++; 
       mRefChild.setValue(counter1); 
      } 

     }); 

} 
} 
1

Проблема заключается вы пытаетесь справиться нажмите слушателю кнопки 2 в 1. Кнопка Это должно исправить:

public class Main2Activity extends AppCompatActivity { 
private Firebase mRootRef; 
private Button mBtn1; 
private Button mBtn2; 
int counter = 0; 
int counter1 = 0; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Firebase.setAndroidContext(this); 
    mBtn1 = (Button) findViewById(R.id.btn1); 
    mBtn2 = (Button) findViewById(R.id.btn2); 
    mBtn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) 
     { 

      Intent i1= new Intent(Main2Activity.this, Voted.class); 
      startActivity(i1); 
      mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 1"); 
      Firebase mRefChild = mRootRef.child("Votes"); 
      counter++; 
      mRefChild.setValue(counter); 
     }); 


     mBtn2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       mRootRef = new Firebase("https://voting-cf0fa.firebaseio.com/House/Jupiter/Player 2"); 
       Intent i2= new Intent(Main2Activity.this, Voted2.class); 
       startActivity(i2); 
       Firebase mRefChild = mRootRef.child("Votes"); 
       counter1++; 
       mRefChild.setValue(counter1); 
      } 

     }); 

} 
} 
+0

Счетчик в Firebase больше не увеличивается. Раньше это увеличивалось. – Abhi

Смежные вопросы