Posso obter dados e inserir dados no banco de dados sem usar o adaptador ou a visualização do reciclador? Este é o meu código.
pacote com.example.personalapp;
public class PersonalFragment extends Fragment {
private PersonalViewModel personalVM;
private TextView tvFullName, tvIdCard, tvPhoneNumber;
public PersonalFragment(){
// require a empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_personal, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @NonNull Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
tvFullName = view.findViewById(R.id.tvFullName);
tvIdCard = view.findViewById(R.id.tvIdCard);
tvPhoneNumber = view.findViewById(R.id.tvPhoneNumber);
personalVM = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(getActivity().getApplication())).get(PersonalViewModel.class);
PersonalEntity pe = new PersonalEntity(0, "Testing User", "1234567891011", "08215326211");
personalVM.insertUserData(pe);
personalVM.getUserData().observe(getViewLifecycleOwner(), new Observer<PersonalEntity>() {
@Override
public void onChanged(PersonalEntity personal) {
if(personal != null) {
tvFullName.setText(personal.getFull_name());
tvIdCard.setText(personal.getId_card());
tvPhoneNumber.setText(personal.getPhone_number());
} else {
tvFullName.setText("?");
tvIdCard.setText("?");
tvPhoneNumber.setText("?");
}
}
});
}
}
Mas assim que executo o aplicativo, não consigo inserir os dados e exibi-los no meu aplicativo. Mas na outra página, exibo meu banco de dados com visualização de adaptador e reciclador e está funcionando bem.
Presumo que esteja
personalVM.insertUserData(pe);
funcionando, já que você disse que pode ver os novos dados em outra página com o recyclerview exibindo-os. Tente chamar o código de observação antes de inserir os novos dados. Então deve ser algo assim:Acredito que você deve definir o observador antes de inserir novos dados. Espero que isto ajude.