Android - 将数据添加到数据库

时间:2017-08-07 08:28:28

标签: java android firebase firebase-realtime-database

我正在使用 firebase 开发一个Android应用程序作为我的数据库。我想在button的新闻中插入一些数据,但我想在数据库中插入的一些对象放在我的片段中的不同方法中。如何使用相同按钮

在不同方法中将数据插入数据库
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;
}


}

实现的界面来自我所做的日期片段,用户可以在日期小部件上选择日期。我想将日期对象插入数据库,但我不确定如何使用另一种方法中的submitButton

1 个答案:

答案 0 :(得分:1)

您已使用Button将日期设置为buttonDateText.setText(date);,您可以将其添加到onDataChange并阅读:

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

或在StringString mDate ="";内声明onDateSelected作为类变量mDate = date,现在您可以在mDate <内使用onDataChange / p>