2016-10-20 3 views
-1

То, что я пытаюсь сделать, это попытаться получить данные в firebase после нажатия кнопки обновления. но он не намерен к следующей деятельности. он просто остается там, и ничего не произошло. Есть ли что-то, что мне не хватает на кодах firebase?Кнопка не намерена после нажатия

public class Details extends AppCompatActivity implements View.OnClickListener { 
    EditText name, matric, ic, phone, department, roomBlock, roomLevel, roomNumber; 
    Button update; 
    private FirebaseAuth auth; 
    private DatabaseReference mDatabase; 
    String mUserId; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_details); 

     name = (EditText)findViewById(R.id.editText2); 
     matric = (EditText)findViewById(R.id.editText3); 
     ic = (EditText)findViewById(R.id.editText4); 
     phone = (EditText)findViewById(R.id.editText5); 
     department = (EditText)findViewById(R.id.editText6); 
     roomBlock = (EditText)findViewById(R.id.editText7); 
     roomLevel = (EditText)findViewById(R.id.editText8); 
     roomNumber = (EditText)findViewById(R.id.editText9); 

     update = (Button)findViewById(R.id.btnupdate); 

     auth = FirebaseAuth.getInstance(); 

     mDatabase = FirebaseDatabase.getInstance().getReference(); 
     mUserId = FirebaseAuth.getInstance().getCurrentUser().getUid(); 

    } 

    @Override 
    public void onClick(View view){ 
     if(view == update){ 
      final String key = mDatabase.child("data").push().getKey(); 
      final String name1 = name.getText().toString().trim(); 
      final String matric1 = matric.getText().toString().trim(); 
      final String ic1 = ic.getText().toString().trim(); 
      final String phone1 = phone.getText().toString().trim(); 
      final String department1 = department.getText().toString().trim(); 
      final String roomBlock1 = roomBlock.getText().toString().trim(); 
      final String roomLevel1 = roomLevel.getText().toString().trim(); 
      final String roomNumber1 = roomNumber.getText().toString().trim(); 

      Item newItem = new Item(name1, matric1, ic1, phone1, department1, roomBlock1, roomLevel1, roomNumber1); 
      Map<String, Object> itemValues = newItem.toMap(); 
      Map<String, Object> childUpdates = new HashMap<>(); 
      childUpdates.put("/data/" + mUserId + "/" + key, itemValues); 
      mDatabase.updateChildren(childUpdates); 

      Toast.makeText(Details.this, "Details Updated!", Toast.LENGTH_SHORT).show(); 
      Intent intent = new Intent(Details.this, DoorActivity.class); 
      startActivity(intent); 
     } 

    } 
} 

ответ

0

Вы не установили onClickListener ваши Button.

update = (Button)findViewById(R.id.btnupdate); 
update.setOnClickListener(this); 
+0

Теперь я чувствую себя глупо, не замечая таких мелких деталей. Благодаря! –

0

Я думаю, ваша проблема здесь:

if(view == update){ 

вы могли бы сделать это, например, так:

@Override 
    public void onClick(View view){ 

    switch(view.getId()){ 

    case(R.id.btnupdate): 

    //do you stuff here 

    break; 

    } 
    } 

Вы сравнив вид на кнопке, но вы должен сделать это по методу getId().

Также вы можете сделать это без осуществления OnClickListener в своей деятельности и установить его на каждой кнопке, как:

update.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do your stuff 
      } 
     }); 
0

добавить clickListener к кнопке

yourButton.setOnClickListener((this); 

и в onClick

public void onClick(View v) { 
    if(v.getId==R.id.yourButtonId){ 
     // Perform action here 

    } 
}    
}); 

удача

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