Android - Problemas al editar una fila

 
Vista:
sin imagen de perfil
Val: 40
Ha aumentado su posición en 2 puestos en Android (en relación al último mes)
Gráfica de Android

Problemas al editar una fila

Publicado por Hector (35 intervenciones) el 31/08/2021 16:53:16
Hola amigos del foro esperando que todos se encuentren muy bien de salud, estoy realizando una pequeña aplicación en la cual poseo una tabla (tablelayout), la cual funciona bien al momento de ingresar y grabar, también el buscar un registro, pero ahora lo que deseo es seleccionar una fila y editarla a las distintas edittext que poseo, este es el código que poseo actualmente.
public class MainActivity extends AppCompatActivity {

EditText et_busqueda, et_filas, et_tipo, et_marca, et_modelo, colFilas, colTipo, colMarca, colModelo, et_activo;
Button cmdingresar, modificar;
TableLayout tbldatos;
private String[]header={"N° Filas","Tipo","Marca","Modelo"};
private ArrayList<String[]> rows=new ArrayList<>();
private TableRow tableRow;
private TableDynamic tableDynamic;
RequestQueue requestQueue;
AlertDialog.Builder builder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_busqueda = findViewById(R.id.txtbusqueda5);
et_filas = findViewById(R.id.txtitem);
et_filas.setEnabled(false);
et_tipo = findViewById(R.id.txttipo);
et_marca = findViewById(R.id.txtmarca);
et_modelo = findViewById(R.id.txtmodelo);
et_activo = findViewById(R.id.txtactivo5);
cmdingresar = findViewById(R.id.cmdingresar);
modificar = findViewById(R.id.cmdmodificar);
tbldatos = findViewById(R.id.tbldatos);

tableDynamic = new TableDynamic(tbldatos, getApplicationContext());
tableDynamic.addHeader(header);
tableDynamic.addData(getClients());
tableDynamic.backgroundHeader(Color.BLUE);
tableDynamic.backgroundData(Color.RED, Color.YELLOW);
tableDynamic.lineColor(Color.BLACK);
tableDynamic.textColorData(Color.WHITE);
tableDynamic.textColorHeader(Color.MAGENTA);
et_tipo.requestFocus();
mostrardatos();
builder = new AlertDialog.Builder(this);

cmdingresar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ejecutarServicio("http://192.168.1.96/oficina/insertar_vehiculos.php");
}
});
}

private ArrayList<String[]> getClients(){

return rows;
}

private void ejecutarServicio (String URL) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(getApplicationContext(), "Datos grabados satisfactoriamente", Toast.LENGTH_SHORT).show();
datos();
insertar();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Vuelva a intentarlo, este registro ya existe", Toast.LENGTH_SHORT).show();
int b = 1;
int val1 = Integer.parseInt(String.valueOf(et_filas.getText()));
int val2 = Integer.parseInt(String.valueOf(b));
int suma = val1 + val2;
String valorTotal = Integer.toString(suma);
et_filas.setText(valorTotal);
}
}) {
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parametros = new HashMap<String, String>();
String a = "1";
et_activo.setText(a);
parametros.put("Tipo_Vehiculo",et_tipo.getText().toString());
parametros.put("Marca_Vehiculo",et_marca.getText().toString());
parametros.put("Modelo_Vehiculo",et_modelo.getText().toString());
parametros.put("Activo",et_activo.getText().toString());
return parametros;
}
};
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}

public void datos (){
String[]item = new String[]{et_filas.getText().toString(),et_tipo.getText().toString(),et_marca.getText().toString(),et_modelo.getText().toString()};
tableDynamic.addItems(item);
}

public void insertar(){
builder.setMessage(R.string.dialog_message1).setTitle(R.string.dialog_title);
builder.setMessage("¿Desea seguir ingresando?").setCancelable(false).setPositiveButton("Si", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int b = 1;
int val1 = Integer.parseInt(String.valueOf(et_filas.getText()));
int val2 = Integer.parseInt(String.valueOf(b));
int suma = val1 + val2;
String valorTotal = Integer.toString(suma);
et_filas.setText(valorTotal);
et_tipo.setText("");
et_marca.setText("");
et_modelo.setText("");
et_tipo.requestFocus();
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
et_tipo.setText("");
et_marca.setText("");
et_modelo.setText("");
et_tipo.requestFocus();
}
});
AlertDialog alert = builder.create();
alert.setTitle("Oficina");
alert.show();
}

public void mostrardatos (){
String url = "http://192.168.1.96/oficina/buscar_vehiculos.php";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
LayoutInflater reg1 = getLayoutInflater();
View registro = reg1.inflate(R.layout.tabla,null, false);
colFilas=registro.findViewById(R.id.colFilas);
colTipo=registro.findViewById(R.id.colTipo);
colMarca=registro.findViewById(R.id.colMarca);
colModelo=registro.findViewById(R.id.colModelo);
colFilas.setText(jsonObject.getString("N_Filas"));
colTipo.setText(jsonObject.getString("Tipo_Vehiculo"));
colMarca.setText(jsonObject.getString("Marca_Vehiculo"));
colModelo.setText(jsonObject.getString("Modelo_Vehiculo"));
tbldatos.addView(registro);
int j = 1;
for (int x = 0; x <= tbldatos.getChildCount(); x++) {
int suma = x + j;
et_filas.setText("" + suma);
}
int b = 1;
int val1 = Integer.parseInt(String.valueOf(et_filas.getText()));
int val2 = Integer.parseInt(String.valueOf(b));
int suma = val1 + val2;
String valorTotal = Integer.toString(suma);
et_filas.setText(valorTotal);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
}

public void Consultar (View view) {
tbldatos.removeAllViews();
String url = "http://192.168.1.96/oficina/buscar_vehiculos1.php?Marca_Vehiculo=" + et_busqueda.getText().toString();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("data");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
LayoutInflater reg1 = getLayoutInflater();
View registro = reg1.inflate(R.layout.tabla, null, false);
colFilas = registro.findViewById(R.id.colFilas);
colTipo = registro.findViewById(R.id.colTipo);
colMarca = registro.findViewById(R.id.colMarca);
colModelo = registro.findViewById(R.id.colModelo);
colFilas.setText(jsonObject.getString("N_Filas"));
colTipo.setText(jsonObject.getString("Tipo_Vehiculo"));
colMarca.setText(jsonObject.getString("Marca_Vehiculo"));
colModelo.setText(jsonObject.getString("Modelo_Vehiculo"));
tbldatos.addView(registro);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
}

public void Tableregistro (View view){
tbldatos.setBackgroundColor(Color.GREEN);
View control = tbldatos.getChildAt(0);
String codigo = control.toString();
if (codigo.isEmpty()){
et_filas.setText("");
et_tipo.setText("");
et_marca.setText("");
et_modelo.setText("");
} else {
et_filas.setText(codigo.charAt(0));

}
}

y este el código que utilizo en el layout resource file denominada tabla.xml

<?xml version="1.0" encoding="utf-8"?>

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:onClick="Tableregistro"
tools:ignore="TouchTargetSizeCheck">

<EditText
android:id="@+id/colFilas"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/item"
android:importantForAutofill="no"
android:inputType="number"
android:textSize="16sp"
tools:ignore="TouchTargetSizeCheck" />

<EditText
android:id="@+id/colTipo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:text="@string/tipo1"
android:textSize="16sp"
tools:ignore="TouchTargetSizeCheck" />

<EditText
android:id="@+id/colMarca"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:text="@string/marca"
android:textSize="16sp"
tools:ignore="TouchTargetSizeCheck" />

<EditText
android:id="@+id/colModelo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:text="@string/modelo"
android:textSize="16sp"
tools:ignore="TouchTargetSizeCheck" />
</TableRow>

en el public void tableregistro es en la función que pretendo realizar la edición de la fila y que al seleccionar se marca en verde la fila y así poder llevar dichos datos a las distintas cajas de texto, ojala que me puedan asesorar de como puedo hacerlo en forma correcta, ya lo que he investigado todos los ejemplos los realizan a través de SQLite, y estoy utilizando actualmente mysql en java para android, y desde ya muchas gracias.
Por otro lado se adjunta una imagen que es lo que se pretende hacer, ya que esto mismo lo realice a través de netbenas en java, así que creo que también se debe hacer lo mismo en android y con mysql
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 40
Ha aumentado su posición en 2 puestos en Android (en relación al último mes)
Gráfica de Android

Problemas al editar una fila

Publicado por Hector (35 intervenciones) el 01/09/2021 18:19:45
Hola amigos del foro esperando que todos se encuentren muy bien de salud, realice un cabio en el código de la función publica por el nombre de Tablaeditar el cual es el siguiente:
public void Tablaeditar (View view) {
idFilas = view.toString();
String url = "http://192.168.1.96/oficina/buscar_vehiculos2.php?N_Filas =" + idFilas;
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
et_filas.setText(response.getString("N_Filas"));
et_tipo.setText(response.getString("Tipo_Vehiculo"));
et_marca.setText(response.getString("Marca_Vehiculo"));
et_modelo.setText(response.getString("Modelo_Vehiculo"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
}
el error para mi es este idFilas = view.toString();
String url = "http://192.168.1.96/oficina/buscar_vehiculos2.php?N_Filas =" + idFilas;
, no se como hacer que llevar ese view a mi variable global ya que al seleccionar la fila no lo realiza, favor de asesorarme con este problema y desde ya muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar