提问人:Rodrigo Bonilla Barreda 提问时间:11/1/2023 更新时间:11/1/2023 访问量:25
我的 RecyclerView 上没有更新,也没有明显的错误
No update on my RecyclerView and No errors are visble
问:
这部分来自“edicionCliente”。如果我没记错的话,它会显示数据,仅此而已。屏幕左下角还有一个浮动的动作按钮。当您点击此按钮时,它将切换到“formActualizaProducto”活动。您可以在此处更新数据,您所做的更改将反映在 recyclerView 中。
if (savedInstanceState==null){
Bundle datosAdicionales = getIntent().getExtras();
if (datosAdicionales!=null){
identifyProducto=datosAdicionales.getInt("identificadorProducto");
}
}else {
identifyProducto=(int)savedInstanceState.getSerializable("identificadorProducto");
}
uConexion comunicacionVisualizaProducto = new uConexion(edicionDatos.this);
SQLiteDatabase accionVisualizaProducto = comunicacionVisualizaProducto.getWritableDatabase();
Cursor cursorProducto =accionVisualizaProducto.rawQuery("SELECT * FROM "+TABLE_NAME+" ORDER BY idTabla DESC",null);
if (cursorProducto.moveToFirst()){
do {
campoIdClienteEdicion.setText(cursorProducto.getString(1));
campoPrecioEdicion.setText(cursorProducto.getString(2));
menuZonaEdicion.setSelection(cursorProducto.getInt(3));
menuPaisEdicion.setSelection(cursorProducto.getInt(4));
menuTipoProductoEdicion.setSelection(cursorProducto.getInt(5));
menuCanalVentaEdicion.setSelection(cursorProducto.getInt(6));
menuPrioridadEdicion.setSelection(cursorProducto.getInt(7));
presentadoraImagenEdicion.setImageURI(Uri.parse(cursorProducto.getString(8)));
//Quitar el acceso al teclado
campoIdClienteEdicion.setInputType(InputType.TYPE_NULL);
campoPrecioEdicion.setInputType(InputType.TYPE_NULL);
menuZonaEdicion.setSelection(InputType.TYPE_NULL);
menuPaisEdicion.setSelection(InputType.TYPE_NULL);
menuTipoProductoEdicion.setSelection(InputType.TYPE_NULL);
menuCanalVentaEdicion.setSelection(InputType.TYPE_NULL);
menuPrioridadEdicion.setSelection(InputType.TYPE_NULL);
}while (cursorProducto.moveToNext());
}
cursorProducto.close();
btnEnviarEdicion.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent xcv = new Intent(edicionDatos.this,formActualizaProducto.class);
xcv.putExtra("identificadorProducto",identifyProducto);
startActivity(xcv);
}
});
这部分来自 formActualizaProducto
if (savedInstanceState == null) {
Bundle datosAdicionales = getIntent().getExtras();
if (datosAdicionales != null) {
identifyProducto = datosAdicionales.getInt("identificadorProducto");
}
} else {
identifyProducto = (int) savedInstanceState.getSerializable("identificadorProducto");
}
uConexion comunicacionVisualizaProducto = new uConexion(formActualizaProducto.this);
SQLiteDatabase accionVisualizaProducto = comunicacionVisualizaProducto.getWritableDatabase();
Cursor cursorProducto =accionVisualizaProducto.rawQuery("SELECT * FROM "+TABLE_NAME+" ORDER BY idTabla DESC",null);
if (cursorProducto.moveToFirst()){
campoIdProductoCambio.setText(cursorProducto.getString(1));
campoPrecioProductoCambio.setText(String.valueOf(cursorProducto.getInt(2)));
menuZonaCambio.setSelection(cursorProducto.getInt(3));
menuPaisCambio.setSelection(cursorProducto.getInt(4));
menuTipoProductoCambio.setSelection(cursorProducto.getInt(5));
menuCanalVentaCambio.setSelection(cursorProducto.getInt(6));
menuPrioridadCambio.setSelection(cursorProducto.getInt(7));
presentadoraImagenCambio.setImageURI(Uri.parse(cursorProducto.getString(8)));
}
cursorProducto.close();
btnGuardarCambios.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
//validamos si el usuario ya brindo acceso...
if (ActivityCompat.checkSelfPermission(formActualizaProducto.this, android.Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED){
capturarFoto();
}else{
//aca se lanza un dialogo para que el usuario acepte usar el modulo correspondiente....
ActivityCompat.requestPermissions(formActualizaProducto.this,new String[]{Manifest.permission.CAMERA},permisoCamara);
}
}else{
capturarFoto();
}
//Try y cath
try {
int precioProducto = Integer.parseInt(campoPrecioProductoCambio.getText().toString());
accionVisualizaProducto.execSQL("UPDATE " + TABLE_NAME +
" SET idCliente='" + campoIdProductoCambio.getText().toString() +
"', precioProducto=" + precioProducto +
", zonaProducto='" + menuZonaCambio.getSelectedItem().toString() +
"', paisProducto='" + menuPaisCambio.getSelectedItem().toString() +
"', tipoProducto='" + menuTipoProductoCambio.getSelectedItem().toString() +
"', canalVentaProducto='" + menuCanalVentaCambio.getSelectedItem().toString() +
"', prioridadProducto='" + menuPrioridadCambio.getSelectedItem().toString() +
"', fotografiaUbicaciones='" + ubicacionFoto+
"' WHERE idTabla=" + identifyProducto);
} catch (Exception ex) {
throw new RuntimeException(ex);
}
Intent finalizarCambio = new Intent(formActualizaProducto.this,MainActivity.class);
startActivity(finalizarCambio);
}
});
}
private void capturarFoto() {
// Código para capturar la foto
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (i.resolveActivity(getPackageManager()) != null) {
File imagenArchivo = null;
try {
imagenArchivo = crearArchivo();
// Asegúrate de tener la ruta de la imagen
ubicacionFoto = imagenArchivo.getAbsolutePath();
// Lanza la cámara y espera la foto
Uri fotoUri = FileProvider.getUriForFile(formActualizaProducto.this, "com.example.mieroles", imagenArchivo);
i.putExtra(MediaStore.EXTRA_OUTPUT, fotoUri);
startActivityForResult(i, codigoServicioCamara);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
//el siguiente metodo, asigna el nombre a la foto recuerden que es por fecha y hora
private File crearArchivo() throws IOException {
String horaFecha = new SimpleDateFormat("yyyyMmdd_Hh-mm-ss", Locale.getDefault()).format(new Date());
String nombreImagen = "IMG_"+horaFecha;
//creamos la foto.....
File nuevaUbicacion = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File imagenFinal = File.createTempFile(nombreImagen,".jpg",nuevaUbicacion);
//obtener la ruta....
ubicacionFoto=imagenFinal.getAbsolutePath();
return imagenFinal;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (permissions.length >0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
capturarFoto();
}else{
Toast.makeText(formActualizaProducto.this,"Es necesario confirmar el permiso",Toast.LENGTH_LONG).show();
}
}
我尝试过 ChatGPT 给我的一些建议,但老实说,如果我没有错误,我不知道为什么我的 formActualizaProducto 不能正常工作。
答: 暂无答案
上一个:数据库更改时更新适配器
评论