Actualizar Valor Spinner, guardado en SQLite

preguntado por Mario1708 (120 puntos) Ene 6

Estoy manejando una base de datos SQlite la cual traigo la información por medio de RecyclerView Id, nombre, descripción, y cuento con un Spinner el cual tiene unos valores predeterminados.

Y quiero que cuando ingrese a la actividad y seleccione un valor del spinner este sea guardado en la base de datos SQlite y después cuando uno vuelva a ingresar a la actividad se vea es el valor seleccionado.

Activity.

public class Pedidos extends AppCompatActivity implements OnItemSelectedListener {

Context mainContext;
private DataBaseManager managerPedidos;
private RecyclerView recycler;
private RecyclerView.LayoutManager lManager;
private List<Producto> listaItemsCursos;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pedidos);
    managerPedidos = new DataBaseManager(this);
    listaItemsCursos = managerPedidos.getPedidoList();
    recycler = (RecyclerView) findViewById(R.id.pedidos);
    recycler.setHasFixedSize(true);
    lManager = new LinearLayoutManager(this);
    recycler.setLayoutManager(lManager);
    ProductoAdapter adapter = new ProductoAdapter(listaItemsCursos, this);
    recycler.setAdapter(adapter);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String item = parent.getItemAtPosition(position).toString();
    Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
}

"Este es mi DBHelper"

public class DbHelper extends SQLiteOpenHelper {
private static final String DB_NOMBRE = "vetStore.sqlite";
private static final int VERSION = 1;
public DbHelper(Context context) {
    super(context, DB_NOMBRE, null, VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
        db.execSQL(DataBaseManager.CREAR_TABLA_PEDIDO);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS" + DataBaseManager.TABLA_PEDIDO);
    onCreate(db);
}

"ESTE ES MI DatabaseManager:"

public class DataBaseManager {

public static final String TABLA_PEDIDO = "pedido";
public static final String CREAR_TABLA_PEDIDO = "CREATE TABLE " + TABLA_PEDIDO + " (" +
        "pysId integer," + "cantidad text," + "pysNombre text)";

public DataBaseManager(Context context) {
    helper = new DbHelper(context);
    db = helper.getWritableDatabase();
    db = helper.getReadableDatabase();
}

private ContentValues generarContentValues (int pysId, String cantidad, String pysNombre)
{
    ContentValues cv = new ContentValues();
    cv.put("pysId", pysId);
    cv.put("cantidad", cantidad);
    return cv;
}

public void insert(int pysId, String cantidad, String pysNombre) {
    db.insert(TABLA_PEDIDO, null, generarContentValues(pysId, cantidad, pysNombre));
}

public void modificarValor (int pysId, String nuevaCantidad, String pysNombre){

    SQLiteDatabase db = helper.getWritableDatabase();

    if (db != null){
        db.update(TABLA_PEDIDO, generarContentValues(pysId, nuevaCantidad, pysNombre), "pysId=?", new String[]{String.valueOf(pysId)});
        db.close();
    }
}

public List<Producto> getPedidoList() {

    List<Producto> pedido = new ArrayList<Producto>();
    String seleccion = "SELECT * FROM " + TABLA_PEDIDO;
    SQLiteDatabase db = helper.getReadableDatabase();
    Cursor cursor = db.rawQuery(seleccion, null);

    if (cursor.moveToFirst()){
        do {
            pedido.add(new Producto(cursor.getInt(0),cursor.getString(1), cursor.getString(2));
        }while (cursor.moveToNext());
    }
    return pedido;
}

Y este es mi adaptador:

public class ProductoAdapter extends RecyclerView.Adapter<ProductoAdapter.ProductoViewHolder> {

private Selection selection;
Context mainContext;
List<Producto> items;
int selectedPos;

public ProductoAdapter(List<Producto> items, Context contexto) {
    super();
    this.items = items;
    this.mainContext = contexto;
}

@Override
public ProductoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.mostrar_pedido, parent, false);
    ProductoViewHolder pHolder = new ProductoViewHolder(v);
    return pHolder;
}

@Override
public void onBindViewHolder(final ProductoViewHolder viewHolder, int position) {
    final Producto item = items.get(position);

    imageLoader = CustomVolleyRequest.getInstance(mainContext).getImageLoader();

    viewHolder.txtpysId.setText(String.valueOf(item.getPysId()));
    viewHolder.txtnombre.setText(item.getPysNombre());
    viewHolder.txtcant.setAdapter(a());

    viewHolder.txtcant.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            nuevaCantidad = viewHolder.txtcant.getSelectedItem().toString();

            nuevaCantidad = parent.getItemAtPosition(position).toString();

            modificarValor(pysId, nuevaCantidad, pysNombre, pysDescripcion,
                    pysPrecio, tienNombre, pysImagen);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
}

public SpinnerAdapter a() {
    String[] pedido = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
    ArrayAdapter<String> adapter = new ArrayAdapter<>(mainContext,android.R.layout.simple_spinner_item, pedido);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    return adapter;
}

public void modificarValor (int pysId, String nuevaCantidad){
    DataBaseManager dbManager = new DataBaseManager(mainContext);
    dbManager.modificarValor(pysId, nuevaCantidad, pysNombre);

}

@Override
public int getItemCount() {
    return items.size();
}

class ProductoViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView txtpysId;        
    TextView txtnombre;
    Spinner txtcant;


    public ProductoViewHolder(View v) {
        super(v);
        txtpysId = (TextView) v.findViewById(R.id.pysId);
        txtnombre = (TextView) v.findViewById(R.id.txtNombre);
        txtcant = (Spinner) v.findViewById(R.id.cantidad);

    }
}

Agradezco toda la ayuda que me puedan dar, no puedo encontrar la solución a lo que necesito, gracias.

...