我发现从Firebase检索数据时出错。我从firebase数据库中获取child(“ H_Location”)的数据。当我按下手机中的PickupButton时,该应用程序将自动关闭。
在MngaddHospital片段中,我的代码是Hare:
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.Objects;
public class MngAddHospitalFragment extends Fragment {
private EditText hospital_name,hospital_email,hospital_number,h_lat,h_long;
private Button pickButton,add_hospital_button;
DatabaseReference href;
//int PLACE_PICKER_REQUEST=1;
public MngAddHospitalFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_mng_add_hospital, container, false);
hospital_name=(EditText) v.findViewById(R.id.hospital_name);
hospital_email=(EditText) v.findViewById(R.id.hospital_email);
hospital_number=(EditText) v.findViewById(R.id.hospital_number);
h_lat=(EditText) v.findViewById(R.id.hospital_lat);
h_long=(EditText) v.findViewById(R.id.hospital_long);
pickButton=(Button) v.findViewById(R.id.btn_lat_long);
add_hospital_button=(Button) v.findViewById(R.id.btn_add_hospital);
pickButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
href= FirebaseDatabase.getInstance().getReference().child("H_Location");
href.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String longitude= Objects.requireNonNull(dataSnapshot.child("H_Location").getValue()).toString();
String latitude= Objects.requireNonNull(dataSnapshot.child("H_Location").getValue()).toString();
h_long.setText(longitude);
h_lat.setText(latitude);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
return v;
}
问题是当我单击手机中的pickupButton时,我的手机关闭了此应用程序并转到主屏幕。 因此,请提供解决方案以克服这种情况。
谢谢
答案 0 :(得分:1)
您需要提供字段名称而不是您的父键
import AudioKitPlaygrounds
import AudioKit
let mic = AKMicrophone()
AKSettings.audioInputEnabled = true
let amplitudeTracker = AKAmplitudeTracker(mic, halfPowerPoint: 10, threshold: 1, thresholdCallback: { (success) in
print("thresholdCallback: \(success)")
})
AudioKit.output = amplitudeTracker
try AudioKit.start()
amplitudeTracker.threshold = 0.01 // !! MUST BE SET VIA PROPERTY
amplitudeTracker.start()
mic?.start()
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
答案 1 :(得分:1)
使用以下代码:
@Override
public void onClick(View v) {
href= FirebaseDatabase.getInstance().getReference().child("H_Location");
href.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String longitude= dataSnapshot.child("longitude").getValue(String.class);
String latitude = dataSnapshot.child("latitude").getValue(String.class);
h_long.setText(longitude);
h_lat.setText(latitude);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG,databaseError.getMessage());
}
});
您的参考位于节点H_location
处,然后才能获取经度和纬度,您需要将其添加到child()
方法内。
不要忘记使用databaseError.getMessage()