当前位置: 首页 > 知识库问答 >
问题:

在Java Android Studio中不能从另一个类调用变量

仰雅昶
2023-03-14

我正在做一个函数,将删除一个实时Firebase中的记录。一个人只能通过知道.getKey()生成的唯一ID来删除他们自己的记录。但是,当我想要实现要删除的RecordId时,我不能调用RecordId。有人知道我做错了什么吗?多谢了。

错误我的错误演示,变量在我的删除函数中无法识别

我的get类

package com.example.sossystem;

public class SosRecords {
    String RecordID;
    String FullName;
    String PhoneNumber;
    String EmailAddress;


    public SosRecords(){

    }


    public SosRecords(String recordID, String fullName, String phoneNumber, String emailAddress) {
        RecordID = recordID;
        FullName = fullName;
        PhoneNumber = phoneNumber;
        EmailAddress = emailAddress;
    }

    public String getRecordID() {
        return RecordID;
    }

    public String getFullName() {
        return FullName;
    }

    public String getPhoneNumber() {
        return PhoneNumber;
    }

    public String getEmailAddress() {
        return EmailAddress;
    }
}


 btnStopSOS.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onStop();
                stopLocationUpdates();
                deleteRecords(RecordID);
                result.setText("Dashboard");
                btnStartSOS.setEnabled(true);
                btnStopSOS.setEnabled(false);
            }
        });


    }

    private void deleteRecords(String fullName) {
        DatabaseReference delRecord = FirebaseDatabase.getInstance().getReference("Records").child(RecordID);
        delRecord.removeValue();
        Toast.makeText(MainActivity.this, "The SOS Request is Stopped!", Toast.LENGTH_SHORT).show();

    }

我的代码

        btnStartSOS.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onStart();

                //GET ALL INFORMATION FROM FIRESTORE AND SEND TO REALTIME DATABASE
                if(FirebaseAuth.getInstance().getCurrentUser()!= null){
                    DocumentReference df = FirebaseFirestore.getInstance().collection("Users").document(FirebaseAuth.getInstance().getCurrentUser().getUid());
                    df.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                        @Override
                        public void onSuccess(DocumentSnapshot documentSnapshot) {
                            if(documentSnapshot.getString("FullName")!= null){

                                String id = reff.push().getKey();
                                Log.d(TAG, "asdasd"+id);
                                SosRecords sosRecords = new SosRecords(id,documentSnapshot.getString("FullName"), (documentSnapshot.getString("PhoneNumber")), (documentSnapshot.getString("UserEmail")  ));
                                reff.child(id).setValue(sosRecords);
                                btnStopSOS.setEnabled(true);
                                Toast.makeText(MainActivity.this, "You're are now activating SOS request !", Toast.LENGTH_SHORT).show();

                                }
                            }
                            
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            FirebaseAuth.getInstance().signOut();
                            startActivity(new Intent(getApplicationContext(),Login.class));
                            finish();
                        }
                    });
                }

                if(ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.ACCESS_FINE_LOCATION)== PackageManager.PERMISSION_GRANTED){
                    checkSettingsAndStartLocationUpdates();
                }else{
                    askLocationPermission();
                }
                }
        });

        btnStopSOS.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onStop();
                stopLocationUpdates();
                deleteRecords(RecordID);
                result.setText("Dashboard");
                btnStartSOS.setEnabled(true);
                btnStopSOS.setEnabled(false);
            }
        });


    }

    private void deleteRecords(String fullName) {
        DatabaseReference delRecord = FirebaseDatabase.getInstance().getReference("Records").child(RecordID);
        delRecord.removeValue();
        Toast.makeText(MainActivity.this, "The SOS Request is Stopped!", Toast.LENGTH_SHORT).show();

    }

共有1个答案

严正诚
2023-03-14
    SosRecords sosrecords = new SosRecords();

    btnStopSOS.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    onStop();
                    stopLocationUpdates();
                    deleteRecords(sosrecords.getRecordID);
                    result.setText("Dashboard");
                    btnStartSOS.setEnabled(true);
                    btnStopSOS.setEnabled(false);
                }
            });
    
    
        }
 类似资料:
  • 我正在做一个新的项目,我试图建立一个货币系统,在那里我可以提取它,以转移到另一个变量(在另一个类)。我在解决这个问题上遇到了一些问题,我对如何编写代码感到非常失望。下面是我想链接的类(我想让“coinsamount”在我做/存款时进入类2“amount” 第2类:

  • 我想从class1调用class2,但是class2没有一个可以引用的主函数,比如

  • 问题内容: 在Python中,有没有一种方法可以从另一个类中调用一个类方法?我正在尝试在Python中旋转自己的MVC框架,但无法弄清楚如何从另一个类的一个类调用方法。 这是我想发生的事情: 我正在从PHP慢慢进入Python,因此我正在寻找与PHP等效的Python 。 问题答案: 更新:刚刚在您的帖子中看到了对它的引用。那不一样。用于获取函数对象,然后使用您的参数调用它 现在是一个实际的函数对

  • 我遇到了一个问题,我需要调用在另一个java类中的一个java类中创建的变量。 课程.java 第二课程.java 即使,我已经这样设置了它,但可变调用在第二课程.java类中不起作用。我错过了什么吗?你可以帮我吗? 我在试着打电话 在SecondCourse.java类。但给我错误sendKeys(java.lang.CharSequence....)在org.openqa.selenium.W

  • 在我的项目中,我有3个文件: FXMLController.java这是一个JavaFX文件 FXML。这是另一个JavaFX文件 JavaApplication3.java这个文件只包含我的主要方法: 我想从我的主方法启动我的FXMLController类来运行这个程序。怎么做呢?我写的代码不工作可能是因为我有这个错误“没有找到合适的方法启动”。

  • 假设我有以下功能文件: 我ogin.feature 功能:登录网站 场景:现场登录验证 给定导航到站点登录页 家特色 功能:欢迎页面验证 场景:验证登录后出现的页面 已成功完成给定登录 登录成功后的页面出现时 然后测试完成 在Home.feature文件中,我需要先执行Login.feature,然后调用home.feature.所以当我从运行器测试中执行home时,它会依次执行login,然后是