2016-10-20 168 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

您沒有設置onClickListenerButton

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 

    } 
}    
}); 

祝你好運