Skip to content

Commit 187173e

Browse files
committed
updated sqlite log logic
1 parent 484a20a commit 187173e

File tree

8 files changed

+276
-0
lines changed

8 files changed

+276
-0
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
<!-- Otras configuraciones de la actividad, como la etiqueta y la orientación -->
3232
</activity>
3333

34+
<activity android:name=".LogActivity">
35+
<!-- Otras configuraciones de la actividad, como la etiqueta y la orientación -->
36+
</activity>
37+
3438
</application>
3539

3640
</manifest>
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package io.github.k3ssdev.loginformsqliteandroid;
2+
3+
import android.content.Intent;
4+
import android.database.Cursor;
5+
import android.os.AsyncTask;
6+
import android.os.Bundle;
7+
import android.view.View;
8+
import android.widget.ArrayAdapter;
9+
import android.widget.ListView;
10+
11+
import androidx.appcompat.app.AppCompatActivity;
12+
13+
import java.util.ArrayList;
14+
import java.util.List;
15+
16+
public class LogActivity extends AppCompatActivity {
17+
private ListView listView_apr;
18+
19+
@Override
20+
protected void onCreate(Bundle savedInstanceState) {
21+
super.onCreate(savedInstanceState);
22+
setContentView(R.layout.activity_log);
23+
24+
// Obtiene una referencia al ListView en la vista
25+
listView_apr = findViewById(R.id.listView);
26+
27+
// Inicia la tarea asincrónica para consultar tabla SQLite
28+
new ConsultarLogin().execute();
29+
}
30+
31+
public void exit(View view) {
32+
// Crea un Intent para volver al MainActivity
33+
Intent intent_apr = new Intent(this, MainActivity.class);
34+
startActivity(intent_apr);
35+
finish(); // Cierra la actividad actual
36+
}
37+
38+
private class ConsultarLogin extends AsyncTask<Void, Void, List<String>> {
39+
@Override
40+
protected List<String> doInBackground(Void... voids) {
41+
// Obtiene los registros de SQLite llamando al método consultarRegistros
42+
SQLiteHandler sqLiteHandler = new SQLiteHandler(LogActivity.this);
43+
Cursor cursor = sqLiteHandler.consultarRegistros();
44+
45+
List<String> registros = new ArrayList<>();
46+
47+
while (cursor.moveToNext()) {
48+
String timestamp = cursor.getString(cursor.getColumnIndex("timestamp"));
49+
String usuario = cursor.getString(cursor.getColumnIndex("usuario"));
50+
String contrasena = cursor.getString(cursor.getColumnIndex("contrasena"));
51+
52+
// Aquí puedes construir el formato de registro que desees
53+
String registro = "Timestamp: " + timestamp + ", Usuario: " + usuario + ", Contraseña: " + contrasena;
54+
registros.add(registro);
55+
}
56+
57+
cursor.close();
58+
sqLiteHandler.cerrarBaseDeDatos();
59+
60+
return registros;
61+
}
62+
63+
@Override
64+
protected void onPostExecute(List<String> registros) {
65+
if (registros != null) {
66+
// Crea un adaptador personalizado para tu lista de registros
67+
ArrayAdapter<String> adapter = new ArrayAdapter<>(LogActivity.this, android.R.layout.simple_list_item_1, registros);
68+
69+
// Asigna el adaptador al ListView
70+
listView_apr.setAdapter(adapter);
71+
}
72+
}
73+
}
74+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package io.github.k3ssdev.loginformsqliteandroid;
2+
3+
public class Login {
4+
private String usuario;
5+
private String contrasena;
6+
private String timestamp;
7+
8+
public Login(String usuario, String contrasena, String timestamp) {
9+
this.usuario = usuario;
10+
this.contrasena = contrasena;
11+
this.timestamp = timestamp;
12+
}
13+
14+
public String getUsuario() {
15+
return usuario;
16+
}
17+
18+
public String getContrasena() {
19+
return contrasena;
20+
}
21+
22+
public String getTimestamp() {
23+
return timestamp;
24+
}
25+
26+
@Override
27+
public String toString() {
28+
return "Login{" +
29+
"usuario='" + usuario + '\'' +
30+
", contrasena='" + contrasena + '\'' +
31+
", timestamp='" + timestamp + '\'' +
32+
'}';
33+
}
34+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package io.github.k3ssdev.loginformsqliteandroid;
2+
3+
import android.annotation.SuppressLint;
4+
import android.content.Context;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.BaseAdapter;
9+
import android.widget.TextView;
10+
11+
import java.util.List;
12+
13+
public class LoginAdapter extends BaseAdapter {
14+
// Contexto de la aplicación
15+
private final Context context_apr;
16+
// Lista de usuarios
17+
private final List<Login> rows_apr;
18+
19+
// Constructor
20+
public LoginAdapter(Context context, List<Login> rows) {
21+
this.context_apr = context;
22+
this.rows_apr = rows;
23+
}
24+
25+
// Devuelve la cantidad de elementos en la lista
26+
@Override
27+
public int getCount() {
28+
return rows_apr.size();
29+
}
30+
31+
// Obtiene un elemento de la lista en una posición específica
32+
@Override
33+
public Object getItem(int position) {
34+
return rows_apr.get(position);
35+
}
36+
37+
// Obtiene el ID de un elemento en una posición específica
38+
@Override
39+
public long getItemId(int position) {
40+
return position;
41+
}
42+
43+
// Obtiene la vista que muestra un elemento de la lista
44+
@SuppressLint("InflateParams")
45+
@Override
46+
public View getView(int position, View convertView, ViewGroup parent) {
47+
if (convertView == null) {
48+
// Infla la vista si es nula
49+
LayoutInflater inflater = (LayoutInflater) context_apr.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
50+
convertView = inflater.inflate(R.layout.item_usuario, null);
51+
}
52+
53+
// Obtiene las referencias a los elementos de diseño en item_usuario.xml
54+
TextView nombreUsuarioTextView_apr = convertView.findViewById(R.id.nombreUsuarioTextView);
55+
TextView contrasenaTextView_apr = convertView.findViewById(R.id.contrasenaTextView);
56+
TextView fechaNacimientoTextView_apr = convertView.findViewById(R.id.fechaNacimientoTextView);
57+
58+
// Obtiene el usuario en la posición actual
59+
Login login = rows_apr.get(position);
60+
61+
// Establece los datos en los elementos de diseño
62+
nombreUsuarioTextView_apr.setText(login.getUsuario());
63+
contrasenaTextView_apr.setText(login.getContrasena());
64+
fechaNacimientoTextView_apr.setText(login.getTimestamp());
65+
66+
return convertView;
67+
}
68+
}
69+
70+
71+

app/src/main/java/io/github/k3ssdev/loginformsqliteandroid/WebServiceHandler.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ protected void onPostExecute(String[] resultadoYDatos) {
120120

121121
// Insertar registro en la base de datos
122122
sqLiteHandler.insertarRegistro(usuario_apr, contrasena_apr);
123+
124+
// Abrir LogActivity
125+
Intent intent = new Intent(activity_apr, LogActivity.class);
126+
activity_apr.startActivity(intent);
123127
}
124128
} else {
125129
// El resultado es null, hubo un error en la petición
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:layout_width="match_parent"
6+
android:layout_height="match_parent"
7+
tools:context=".LogActivity">
8+
9+
<!-- Cabeceras de la tabla -->
10+
<LinearLayout
11+
android:id="@+id/filaCabeceras"
12+
android:layout_width="match_parent"
13+
android:layout_height="60dp"
14+
android:orientation="horizontal"
15+
android:padding="8dp"
16+
app:layout_constraintEnd_toEndOf="parent"
17+
app:layout_constraintHorizontal_bias="0.0"
18+
app:layout_constraintStart_toStartOf="parent"
19+
app:layout_constraintTop_toTopOf="parent">
20+
21+
<TextView
22+
android:layout_width="0dp"
23+
android:layout_height="match_parent"
24+
android:layout_weight="1"
25+
android:textStyle="bold"
26+
android:gravity="center"
27+
android:text="@string/timestamp"
28+
android:background="?android:attr/colorPrimary"
29+
android:textColor="?android:attr/textColorPrimaryInverse"
30+
android:textSize="14sp" />
31+
32+
<TextView
33+
android:layout_width="0dp"
34+
android:layout_height="match_parent"
35+
android:layout_weight="1"
36+
android:gravity="center"
37+
android:text="@string/usuario"
38+
android:background="?android:attr/colorPrimary"
39+
android:textColor="?android:attr/textColorPrimaryInverse"
40+
android:textSize="14sp"
41+
android:textStyle="bold" />
42+
43+
<TextView
44+
android:layout_width="0dp"
45+
android:layout_height="match_parent"
46+
android:layout_weight="1"
47+
android:background="?android:attr/colorPrimary"
48+
android:textColor="?android:attr/textColorPrimaryInverse"
49+
android:gravity="center"
50+
android:text="@string/contrasena"
51+
52+
android:textSize="14sp"
53+
android:textStyle="bold" />
54+
</LinearLayout>
55+
56+
<ListView
57+
android:id="@+id/listView"
58+
android:layout_width="0dp"
59+
android:layout_height="0dp"
60+
android:layout_marginStart="8dp"
61+
android:layout_marginEnd="8dp"
62+
android:divider="?android:attr/dividerHorizontal"
63+
android:showDividers="middle"
64+
app:layout_constraintBottom_toTopOf="@+id/guidelineBoton"
65+
app:layout_constraintEnd_toEndOf="parent"
66+
app:layout_constraintStart_toStartOf="parent"
67+
app:layout_constraintTop_toBottomOf="@+id/filaCabeceras" />
68+
69+
<androidx.constraintlayout.widget.Guideline
70+
android:id="@+id/guidelineBoton"
71+
android:layout_width="wrap_content"
72+
android:layout_height="wrap_content"
73+
android:orientation="horizontal"
74+
app:layout_constraintGuide_percent="0.9" />
75+
76+
<Button
77+
android:id="@+id/botonVolver"
78+
android:layout_width="wrap_content"
79+
android:layout_height="wrap_content"
80+
android:text="@string/volver"
81+
app:layout_constraintBottom_toBottomOf="parent"
82+
app:layout_constraintEnd_toEndOf="parent"
83+
app:layout_constraintStart_toStartOf="parent"
84+
app:layout_constraintTop_toTopOf="@+id/guidelineBoton"
85+
android:onClick="exit" />
86+
87+
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/values-night/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
<string name="img">glider</string>
77
<string name="fecha_nacimiento">Fecha Nacimiento</string>
88
<string name="volver">Volver</string>
9+
<string name="timestamp">TimeStamp</string>
910
</resources>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
<string name="img">glider</string>
77
<string name="fecha_nacimiento">Fecha Nacimiento</string>
88
<string name="volver">Volver</string>
9+
<string name="timestamp">TimeStamp</string>
910
</resources>

0 commit comments

Comments
 (0)