2017-08-20 66 views
0

我有一個「發送」按鈕內的dialogFragment按鈕,onClick事件將新數據按鍵值推送到firebase。兩個不同動作的一個按鈕

我希望這個按鈕在用戶點擊特定按鈕時也像是「更新」按鈕。數據將在與之前相同的關鍵值下在Firebase中進行更新。

這是發送按鈕的onClick方法:

send_btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

        //some code .....// 

        DatabaseReference newPost = mDatabase.push(); 
        str_key = newPost.getKey(); 
        trempData = new TrempData(str_key, str_uid, str_name, str_phone, str_from, str_to, str_date, str_time, str_extra, str_timestamp); 
        newPost.setValue(trempData); 
        Toast.makeText(getActivity(), "Tremp Added", Toast.LENGTH_SHORT).show(); 
        dismiss(); 
       } 


     }); 

有什麼建議?

+0

當他打開開始狀態 –

+0

我不知道什麼樣的對話我undrestand你的問題.. 開始狀態是當用戶點擊發送btn新數據推送到firebase – Nauruto

+0

後它推動你想要的按鈕升級狀態 –

回答

0

這是一個例子:

private final int BUTTON_UPDATE = 1; 
private final int BUTTON_SEND = 2; 
private int buttonStatus = 0; 

send_btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      switch(buttonStatus) 
      { 
      case BUTTON_UPDATE: { // your update code here} 
      case BUTTON_SEND : { // your send code here 
     } 

buttonStatus會控制一下操作按鈕就行了。

0
  1. 將一個布爾值在sharedPrefrences並保持假最初時
    用戶將數據發送到火力更新布爾爲true。

  2. 中的onClick檢查值是true或者利用虛假的,如果別人和 執行代碼相應

0

比實施更重要的是,你認爲這是可以做到的方式。因此,這些情況下的基本方法是使用布爾值變量。

爲什麼?因爲它可以用來指示按鈕是否處於特定狀態。 所以,你可以做這樣的事情。

boolean b=false; 
//set your button in the initial state you want(submit in your case) 
//In onClick() method 
if(!b){   //button in submit state 
b=true;   
//do submit stuff 
send_btn.setText("update"); 
} 
else{   //button in update state 
b=false; 
//do update stuff 
send_btn.setText("submit"); 
} 

在這種情況下,b的真實值表示按鈕處於「更新」狀態。

0

您可以使用視圖的標籤,這和更新狀態,你需要

Button button = findViewById(R.id.btn); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (button.getTag().equals("send")) { 
        // push the value to firebase 

        // set the tag to update and the text 
        button.setTag("update"); 
        button.setText("update"); 
       }else if (button.getTag().equals("update")){ 
        // update the value in firebase 
       } 
      } 
     }); 

XML

<Button 
     android:id="@+id/btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:tag="send" 
     android:text="send" /> 
+0

我希望它被更改爲「更新」,只有當我點擊位於列表視圖(在另一個活動中)的特定按鈕。但是當我嘗試更改標記應用程序關閉 – Nauruto

+0

此代碼中的答案如果有在同一活動中,如果在另一個活動中,我認爲你應該使用prefrence來存儲值 –

相關問題