Android - 将数据添加到数据库

问题描述:

我正在开发一个安卓应用程序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

是你已经在使用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