我想让我的EditText从我的Firebase数据库中得到一些东西,但是它不能执行setText方法 我从stackoverflow中阅读了很多东西,但无法解决我的应用的问题
这是课程代码:
public class TabFragment4 extends Fragment {
Uri filePath;
private static final int PICK_IMAGE = 100;
@Nullable
@Override
public View onCreateView(@Nullable LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment4_layout, container, false);
Bundle b1 = this.getArguments();
final String name = b1.getString("name");
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("user").child(name);
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String na = dataSnapshot.child("nama").getValue(String.class);
String ma = dataSnapshot.child("hp").getValue().toString();
EditText edit1 = (EditText) view.findViewById(R.id.edit1);
EditText edit2 = (EditText) view.findViewById(R.id.edit2);
edit1.setText(na);
edit2.setText("Test");
}
@Override
public void onCancelled(DatabaseError error) {
}
});
Button btn = (Button) view.findViewById(R.id.btng1);
ImageView ipv = (ImageView) view.findViewById(R.id.ivp);
new DownloadImageTask(ipv)
.execute("https://firebasestorage.googleapis.com/v0/b/tugasakhir-6571b.appspot.com/o/images%2F"+name+"?alt=media");
ipv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(i, PICK_IMAGE);
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
ImageView imgProf = (ImageView) this.getView().findViewById(R.id.ivp);
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK && requestCode == PICK_IMAGE){
filePath = data.getData();
imgProf.setImageURI(filePath);
}
}
}
即使直接使用新的String,我也无法使用String变量进行setText