Имею RecyclerView, в каждой строчке которого есть EditText. Как сохранять все значения, введенные в эти EditText`s, при переходе в другую активность, сворачивании и закрытии приложения? Спасибо!
MainActivity
RecyclerView recyclerView;
RecyclerView.Adapter gAdapter;
RecyclerView.LayoutManager layoutManager;
public static List<ListCigarets> listUtilsPrint;
RequestQueue rw;
String request_url = "http://www.json-generator.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newspaper);
rw = Volley.newRequestQueue(this);
recyclerView = (RecyclerView) findViewById(R.id.recyclerViewNewspaper);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
listUtilsPrint = new ArrayList<>();
sendRequest();
}
public void sendRequest() {
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, request_url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for (int i = 0; i < response.length(); i++) {
ListCigarets listPrint = new ListCigarets();
try {
JSONObject jsonObject = response.getJSONObject(i);
listPrint.setName(jsonObject.getString("name"));
listPrint.setBarcode(jsonObject.getString("barcode"));
listPrint.setPrice(jsonObject.getString("price"));
} catch (JSONException e) {
e.printStackTrace();
}
listUtilsPrint.add(listPrint);
}
gAdapter = new CustomRecyclerAdapter(NewspaperActivity.this, listUtilsPrint);
recyclerView.setAdapter(gAdapter);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("Volley Error: ", String.valueOf(error));
}
});
rw.add(jsonArrayRequest);```
Adapter
private Context context;
public static List<ListCigarets> listCigarets;
public static int count;
public CustomRecyclerAdapter(Context context, List listCigarets) {
this.context = context;
this.listCigarets = listCigarets;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_activity, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
final ListCigarets product = listCigarets.get(position);
holder.itemView.setTag(listCigarets.get(position));
ListCigarets pu = listCigarets.get(position);
holder.gName.setText(pu.getName());
holder.gBarcode.setText(pu.getBarcode());
holder.gPrice.setText(pu.getPrice());
holder.quantity.setText(formatValue(product.getCount(), product.getUnit()));
holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count = product.getCount() + 1;
product.setCount(count);
holder.quantity.setText(formatValue(count, product.getUnit()));
}
});
holder.minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count = product.getCount() - 1;
if(count < 0) count = 0;
product.setCount(count);
holder.quantity.setText(formatValue(count, product.getUnit()));
}
});
}
private String formatValue(int count, String unit) {
return String.valueOf(count);
}
@Override
public int getItemCount() {
return listCigarets.size();
}
public void filterList(ArrayList<ListCigarets> filteredList) {
listCigarets = filteredList;
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView gName;
public TextView gBarcode;
public TextView gPrice;
public ImageButton plus;
public ImageButton minus;
public EditText quantity;
public ViewHolder(View itemView) {
super(itemView);
gName = (TextView) itemView.findViewById(R.id.nameCart);
gBarcode = (TextView) itemView.findViewById(R.id.barcodeCart);
gPrice = (TextView) itemView.findViewById(R.id.priceCart);
quantity = (EditText) itemView.findViewById(R.id.quantity);
plus = (ImageButton) itemView.findViewById(R.id.plus);
minus = (ImageButton) itemView.findViewById(R.id.minus);
}
}
[1]: https://i.stack.imgur.com/wZwd7.png