我想要两个在一个按钮中创建两个函数

时间:2019-07-15 05:59:25

标签: java android button android-activity

我正在开发一个将数据存储在Firebase中的应用程序。问题是,当我单击提交时,数据保持在表单上。单击提交时,我需要它返回主屏幕。

我尝试使用开始活动方法,就像我想从MainActivity转到另一个班级一样。可以,但是无法保存我的数据。

感谢您的协助。预先感谢!

buttonSubmitReport.setOnClickListener(v -> {
            reports.setDate(textDate.getText().toString().trim());
            reports.setTime(textTime.getText().toString().trim());
            reports.setReport(editRep.getText().toString().trim());

            reff.push().setValue(reports);
                    reff.child(String.valueOf(maxID+1)).setValue("Reports");
                    Toast.makeText(submitReport.this,"Thanks for the information!", Toast.LENGTH_LONG).show();
                }
            });

3 个答案:

答案 0 :(得分:0)

您可以使用Firebase值更新侦听器,一旦值更新执行该操作。 或者,您可以使用firebase交易处理程序。

override fun onComplete(dataBaseError: DatabaseError?, status: Boolean, snapShot: DataSnapshot?) {
            //Operation complete call back
        }

        override fun doTransaction(data: MutableData): Transaction.Result {
            //Perform your operation here
            return Transaction.success(data)
        }
    })

答案 1 :(得分:0)

我从您的问题中得到的是,从那里开始有一个活动,您正在启动另一个活动以编辑详细信息,并且单击某个按钮后,您要保存这些详细信息并返回上一个活动,对吗? 为此,只需在其中添加一些侦听器,完成后只需完成活动

buttonSubmitReport.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        reports.setDate(textDate.getText().toString().trim());
        reports.setTime(textTime.getText().toString().trim());
        reports.setReport(editRep.getText().toString().trim());

        reff.push().setValue(reports);

        reff.child(String.valueOf(maxID + 1)).setValue("Reports")
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {
                        // Write was successful!, here either finish or move to another activity
                        Toast.makeText(submitReport.this, "Thanks for the information!", Toast.LENGTH_LONG).show();
                        finish();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        // Write failed
                        Toast.makeText(submitReport.this, "Failed to store the data", Toast.LENGTH_LONG).show();
                    }
                });
    });

答案 2 :(得分:0)

您可以尝试一次

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        buttonSubmitReport.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        InsertData();

                        ReportsID = Fetch Reports Id and use condition is empty or not
                        if (TextUtils.isEmpty(ReportsID)) {
                            InsertData();
                        } else {
                            //---Start Activity
                        }
                    }
        });

    }

    public bool InsertData()
    {
        reports.setDate(textDate.getText().toString().trim());
        reports.setTime(textTime.getText().toString().trim());
        reports.setReport(editRep.getText().toString().trim());

        reff.push().setValue(reports);
        reff.child(String.valueOf(maxID+1)).setValue("Reports");
        Toast.makeText(submitReport.this,"Thanks for the information!", Toast.LENGTH_LONG).show();

    }
}