【发布时间】:2017-06-28 19:07:29
【问题描述】:
getVehicleName() 函数需要什么修改才能正确返回车辆名称给父线程?最好的方法是什么?我尝试了处理程序和回调函数,但最终出现编译时错误(“尝试分配较弱的访问权限”)。
父函数(完整代码未粘贴)
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
boolean val = checkifVehicleAvailable("1111A");
} catch (Exception e){
}
});
功能
public boolean checkifVehicleAvailable(String drive_this) {
if( getVehicleName(drive_this).equals("1111A"){
return true;
}
return false;
}
// Need to be modified to return String
public String getVehicleName(String ID){
/*DB references*/
//final String vehicleName;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef;
DatabaseReference childRef;
myRef = database.getReference();
childRef = myRef.child("vehicles");
childRef.child(ID).addListenerForSingleValueEvent(new ValueEventListener() {
String vehicleSecretName;
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
vehicleName = dataSnapshot.child("vehicleName").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
【问题讨论】:
-
请格式化您的代码。在第一部分中,您使用
try而不使用catch。你写了getVehicleName(drive_this).equals("1111A"),但是getVehicleName 是无效的。 -
已编辑。我正在寻找正确的方法来修改 getVehicleName() 以从 firebase DB 返回字符串值。
标签: java android anonymous-class