0

firebaseと一緒にアンドロイドアプリケーションを開発しています。私はbuttonのプレスにいくつかのデータを挿入したいが、データベースに挿入したいオブジェクトの一部はの別のメソッドに置かれている。同じボタンを使用して、異なる方法でデータベースにデータを挿入するにはどうすればよいですか?Android - firebaseデータベースにデータを追加する

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

Javaコードを非常に多くの可能性を考慮して見せてください。 – UmarZaii

+0

UmarZaiiは正しいです。欠けている/間違っているものを追跡するために、最小限で完全で検証可能なコードを提供してください。 –

答えて

0

インスタンス変数を使用できます。次のようなものがあります:

public class MyFrag extends Fragment { 
    private Object obj1, obj2; 
    private void method1() { 
     obj1 = new Object(); 
    } 
    private void method2() { 
     obj2 = new Object(); 
    } 
    private void doSomething() { 
     // obj1 and obj2 are available here 
    } 
} 
関連する問題