将Ration按钮值提交给Firebase

时间:2017-10-07 11:18:23

标签: java android firebase-realtime-database

我在我的应用中创建了一个表单。 Mobile,Amount和Radio Button共有3个值,其中包含2个值(男性和女性)。当我按下提交Button移动设备和金额保存到DatabaseRadioButton值无法保存。但是,当我双击Radiobutton时保存该值。我希望按下提交按钮时它会保存。

以下是代码:

  private void Submit() {
            String Mobile = mobile.getText().toString().trim();
            String Amount = amount.getText().toString().trim();

            if (TextUtils.isEmpty(Mobile)) {
                Toast.makeText(this, "Please enter Mobile", Toast.LENGTH_LONG).show();
                return;
            }

            if (TextUtils.isEmpty(Amount)) {
                Toast.makeText(this, "Please enter Amount", Toast.LENGTH_LONG).show();
                return;
            }

            demoRef.push().child("Mobile").setValue(Mobile);
            demoRef.push().child("Amount").setValue(Amount);

            radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
                    switch (i){
                        case R.id.male:
                            demoRef.push().child("Method").setValue("Male");
                            break;
                        case R.id.female:
                            demoRef.push().child("Method").setValue("Female");
                            break;

                    }

                }
            });

3 个答案:

答案 0 :(得分:0)

你可以像下面这样做。我正在添加示例代码。 1.创建一个变量来存储你从单选按钮获得的gender值,然后将监听器设置为onCreate()中的radioGroup。 2.修改Submit()方法,如下所示。

public class MainActivity extends AppCompatActivity {

// add this variable to hold gender value.
private String gender = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // your all other code which is already inside onCreate();
    ....
    // [EDIT BEGIN]
    RadioButton genderBtn=(RadioButton) findViewById(radioGroup.getCheckedRadioButtonId());
    gender = genderBtn.getText().toString();
    // [EDIT END]
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
                switch (i){
                    case R.id.male:
                        gender = "Male";
                        break;
                    case R.id.female:
                        gender = "Female";
                        break;
                }
            }
        });
}


 // Modify submit method like below.
  private void Submit() {

        String Mobile = mobile.getText().toString().trim();
        String Amount = amount.getText().toString().trim();

        if (TextUtils.isEmpty(Mobile)) {
            Toast.makeText(this, "Please enter Mobile", Toast.LENGTH_LONG).show();
            return;
        }

        if (TextUtils.isEmpty(Amount)) {
            Toast.makeText(this, "Please enter Amount", Toast.LENGTH_LONG).show();
            return;
        }

        demoRef.push().child("Mobile").setValue(Mobile);
        demoRef.push().child("Amount").setValue(Amount);
        demoRef.push().child("Method").setValue(gender);

}

答案 1 :(得分:0)

你可以这样做

    private void Submit() {
        String Mobile = mobile.getText().toString().trim();
        String Amount = amount.getText().toString().trim();

        if (TextUtils.isEmpty(Mobile)) {
            Toast.makeText(this, "Please enter Mobile", Toast.LENGTH_LONG).show();
            return;
        }

        if (TextUtils.isEmpty(Amount)) {
            Toast.makeText(this, "Please enter Amount", Toast.LENGTH_LONG).show();
            return;
        }
        demoRef.push().child("Mobile").setValue(Mobile);
        demoRef.push().child("Amount").setValue(Amount);
        switch (radioGroup.getCheckedRadioButtonId()){
             case R.id.male:
                 demoRef.push().child("Method").setValue("Male");
                     break;
             case R.id.female:
                 demoRef.push().child("Method").setValue("Female");
                     break;
        }
    }

答案 2 :(得分:0)

提交时使用此代码

public void onClick(View arg0) { 
 int selected=radioGroup.getCheckedRadioButtonId();
                RadioButton genderBtn=(RadioButton) findViewById(selected);
                String gender = genderBtn.getText().toString();
}