2017-08-07 205 views
1

我正在開發一個安卓應用程序firebase作爲我的數據庫。我想在button的新聞中插入一些數據,但我想插入數據庫中的一些對象放在我的片段中的不同的方法。如何使用相同的按鈕以不同的方法將數據插入到我的數據庫?Android - 將數據添加到數據庫

public class mFragment extends Fragment implements 
DateFragment.DatePickerEvent { 

DatabaseReference database; 
FirebaseAuth mAuth; 
EditText text1; 
EditText text2; 

@Override 
public void onDateSelected(String date) { 
    Button buttonDateText = (Button) getView().findViewById(R.id.buttonDate); 
    buttonDateText.setText(date); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_frag, container, false); 
    database = FirebaseDatabase.getInstance().getReference("Persons"); 
    mAuth = FirebaseAuth.getInstance(); 
    final FirebaseUser user = mAuth.getCurrentUser(); 


    Button pickDateButton = (Button) rootView.findViewById(R.id.buttonDate); 
    Button submitButton = (Button) rootView.findViewById(R.id.buttonSubmit); 
    text1= (EditText) rootView.findViewById(R.id.oddsView); 
    text2= (EditText) rootView.findViewById(R.id.betAmountView); 

    pickDateButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      DateFragment picker = new DateFragment(); 
      picker.setDatePickerEvents(mFragment.this); 
      picker.show(getFragmentManager(), "datePicker"); 
     } 
    }); 

    submitButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      database.child("Person").addValueEventListener(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        String myText= text1.getText().toString().trim(); 
        String myAnotherText= text2.getText().toString().trim(); 
        String id = database.push().getKey(); 
        database.child(user.getDisplayName()).child(id).child("Adress").setValue(myText); 
        database.child(user.getDisplayName()).child(id).child("name").setValue(myAnotherText); 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      }); 
     } 
    }); 
    return rootView; 
} 


} 

實現的接口來自我所做的一個日期片段,用戶可以在其中選擇日期小部件上的日期。我想插入日期對象插入到數據庫中,但我不確定如何做到這一點與提交按鈕的另一種方法

+0

內提供更清晰..正是你想達到什麼!? –

+0

有一個submitButton,它將兩個文本框添加到數據庫中作爲唯一ID的子項。在另一種方法「onDateSelected」有一個日期對象,我也想添加到數據庫作爲與兩個文本字段相同的唯一ID的子節點。所有這些都應該使用submitButton完成。 – John

回答

1

是你已經在使用buttonDateText.setText(date);你可以將它添加到您的onDataChange和讀取日期設置爲您Button它:

Button buttonDateText = (Button) getView().findViewById(R.id.buttonDate); 
String date = buttonDateText.getText().toString(); 

或聲明String作爲類變量String mDate ="";,裏面onDateSelectedmDate = date,現在你可以使用你的mDateonDataChange

+0

太棒了,這個工程。謝謝。 – John