I am getting list of state from network call. and i am coping it to another list. now when i remove items from one List the same item is also deleting from other list too. i am unable to set filter because of this problem. please let me know what to.
here is my code.
private void getStates() {
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Please Wait");
progressDialog.show();
RestApi restApi = RetroSingleton.getInstance().getRestApi();
restApi.getStates()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<State2>() {
@Override
public void onCompleted() {
progressDialog.dismiss();
}
@Override
public void onError(Throwable e) {
progressDialog.dismiss();
e.printStackTrace();
}
@Override
public void onNext(State2 model) {
state2 = model;
Log.d(Const.TAG, "onNext: " + model.getState().size());
Log.d(Const.TAG, "onNext: " + state2.getState().size());
model.getState().remove(0); //here i remove item
Log.d(Const.TAG, "onNext: " + model.getState().size());
Log.d(Const.TAG, "onNext: " + state2.getState().size());
//now size is same! WHY?
}
});
}
this is my State2.java
public class State2 {
@SerializedName("error")
private Boolean error;
@SerializedName("state")
private List<State> state;
public Boolean getError() {
return error;
}
public void setError(Boolean error) {
this.error = error;
}
public List<State> getState() {
return state;
}
public void setState(List<State> state) {
this.state = state;
}
public class State {
@SerializedName("id")
private String id;
@SerializedName("name")
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
any help would be appreciated. please let me know i just can't figure out Thanks