Ich habe eine Android-App und ich bekomme Daten von Web-API mit Nachrüstung.Wie man Daten speichert, die durch das Nachrüsten in Datenbank erhalten werden
Jetzt muss ich diese Daten in meine Tabelle speichern. Ich benutze aktiven Android.
Mein Tabellenmodell "Partner", die Daten, die ich aus Web-API abrufe und in dieser Tabelle gespeichert werden muss Partner.
@Table(name = "Partners")
public class Partners extends Model {
@Expose
@Column(name = "Name")
public String name;
public Partners() {}
public List<Partners> getPartners() { return getMany(Partners.class, "Partners");}
}
Ich habe ApiService erstellt
public interface APIService {
@GET("Partners")
Call<Partners> getPartners();
}
Ich habe api Helfer
public class APIHelper {
public static APIService apiService;
public static APIService getApiService() {
if (apiService == null) {
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://here-is-part-of-link/partners.json")
.addConverterFactory(GsonConverterFactory.create()).build();
apiService = retrofit.create(APIService.class);
}
return apiService;
}
}
Jahr Dies ist mein Fragment, wo ich versuche Methode aufzurufen Daten aus Web-api zu bekommen.
public class MainFragment extends Fragment implements Callback<Partners> {
Button shippingFragment, deliveryFragment, measurementFragment, takeOversFragment;
private Call<Partners> call;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main_fragment, parent, false);
getActivity().setTitle("Title");
shippingFragment = (Button) view.findViewById(R.id.shipping);
deliveryFragment = (Button) view.findViewById(R.id.delivery);
measurementFragment = (Button) view.findViewById(R.id.measurement);
takeOversFragment = (Button) view.findViewById(R.id.take_overs);
shippingFragment.setOnClickListener(btnFragmentListener);
deliveryFragment.setOnClickListener(btnFragmentListener);
measurementFragment.setOnClickListener(btnFragmentListener);
takeOversFragment.setOnClickListener(btnFragmentListener);
call = APIHelper.getApiService().getPartners();
call.enqueue(this);
return view;
}
Button.OnClickListener btnFragmentListener = (new Button.OnClickListener() {
@Override
public void onClick(View v) {
Fragment fragment = null;
Intent intent = null;
switch (v.getId()) {
case R.id.shipping:
fragment = new ShippingFragment();
replaceFragment(fragment);
break;
case R.id.delivery:
fragment = new DeliveryMain();
replaceFragment(fragment);
break;
case R.id.measurement:
intent = new Intent(getActivity(), MeasurementMain.class);
startActivity(intent);
break;
case R.id.take_overs:
intent = new Intent(getActivity(), AllLogs.class);
startActivity(intent);
break;
}
}
});
public void replaceFragment(android.support.v4.app.Fragment rFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_holder, rFragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public void onResponse(Call<Partners> call, Response<Partners> response) {
}
@Override
public void onFailure(Call<Partners> call, Throwable t) {
Log.e("Error!!!!!!!!", String.valueOf(call));
}
}
Jetzt muss ich Daten in Tabelle "Partner" speichern. Ich habe versucht, dies in onResponse() -Methode zu tun, aber ich scheiterte.
FRAGE: Könnte jemand mir helfen, Daten von Web-API in die Datenbank zu speichern?
Es verwendet getPartners() -Methode von meinem Modell, das alle Partner ruft aber jetzt ist es leer und wirft null Objektverweis – RubyDigger19
ist Ihr URL 'https: // here-is-Teil-of-link/partners.json' valid ?? Überprüfen Sie mit Postbote-Tool, ob die API gibt Daten zurück – SaravInfern
ja, es ist gültig .. ok ich werde das tun – RubyDigger19