Я добавляю элементы в свой список утилизаторов из операции ADD, которая открывается нажатием кнопки в операции просмотра утилизатора. но когда я добавляю и закрываю операцию ADD, элемент не отображается в операции просмотра, пока я не закрою и снова не открою.
Я получаю идентификатор, если добавление сетевого вызова прошло успешно. Затем я добавляю идентификатор в sqlite, завершаю операцию ADD и возвращаюсь к своему виду повторного просмотра. Я получаю идентификатор из sqlite и передаю его функции сетевого вызова, чтобы получить свой элемент.
Это моя работа в Recyclerview
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_subscriptions);
db = SubscriptionDB.getInstance(this);
sessionDBHelper = new SessionDBHelper(this);
idDB = IDsDB.getInstance(this);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.floatAddSub);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Subscriptions.this, AddSubscription.class);
startActivity(intent);
}
});
customerID = idDB.getCustomerID();
progressBar = findViewById(R.id.progress_bar);
recyclerview = (RecyclerView) findViewById(R.id.subscription_recycler);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this);
recyclerview.setLayoutManager(mLayoutManager);
recyclerview.setItemAnimator(new DefaultItemAnimator());
fetchInfo(customerID);
if (subArrayList.size() > 0) {
adapter = new SubRVAdapter(subArrayList, this, this.getSupportFragmentManager());
subArrayList = db.getAll();
recyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
progressBar.setVisibility(View.GONE);
}
}
public void fetchInfo(String customerID) {
apiInterface = RetrofitInstance.getRetrofitInstance().create(APIInterface.class);
Call<ArrayList<SubObject>> call = apiInterface.getSubscription(customerID);
progressBar.setVisibility(View.VISIBLE);
call.enqueue(new Callback<ArrayList<SubObject>>() {
@Override
public void onResponse(Call<ArrayList<SubObject>> call, Response<ArrayList<SubObject>> response) {
adapter = new SubRVAdapter(subArrayList, getApplicationContext(), getSupportFragmentManager());
subArrayList = response.body();
recyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
progressBar.setVisibility(View.GONE);
int statusCode = response.code();
Log.d("onresponse", "" + statusCode);
}
@Override
public void onFailure(Call<ArrayList<SubObject>> call, Throwable t) {
progressBar.setVisibility(View.GONE);
Log.d("onfailure", " " + t.getMessage());
Toast.makeText(Subscriptions.this, "There is a network issue. Try again later.", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
}
});
}
@Override
protected void onResume() {
super.onResume();
Log.d("onResume", "RESUME");
fetchInfo(customerID);
if (subArrayList.size() > 0) {
adapter = new SubRVAdapter(subArrayList, this, this.getSupportFragmentManager());
subArrayList = db.getAll();
recyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
ADD активность
APIInterface apiInterface = RetrofitInstance.getRetrofitInstance().create(APIInterface.class);
AddSubscriptionModel addSubscriptionModel = new AddSubscriptionModel();
addSubscriptionModel.setStickerNumber(stickerNumber);
addSubscriptionModel.setPin(Pin);
addSubscriptionModel.setUsername(username);
addSubscriptionModel.setPassword(password);
addSubscriptionModel.setEmail(phone);
Call<ArrayList<SubModel>> activate = apiInterface.addSubscription(addSubscriptionModel);
activate.enqueue(new Callback<ArrayList<SubModel>>() {
@Override
public void onResponse(Call<ArrayList<SubModel>> call, Response<ArrayList<SubModel>> response) {
if (response.isSuccessful()) {
int statusCode = response.code();
subsscriptions = response.body();
String cusID = subsscriptions.get(0).getCustomer_id();
String subID = subsscriptions.get(0).getSubscription_id();
idDB.addCustomerID(cusID, subID);
}
Toast.makeText(AddSubscription.this, "SUCCESS", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
Log.d("onresponse", "" + statusCode);
}
}
@Override
public void onFailure(Call<ArrayList<SubModel>> call, Throwable t) {
Toast.makeText(AddSubscription.this, "Network issues", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
Log.d("onfailure"," " + t . getMessage());
}
});
finish();
}
});
ссылка на logcat