Класс для данных
package com.example.myapplication;
import androidx.annotation.NonNull;
import java.io.Serializable;
public class User implements Serializable {
private long id;
private String login;
private int age;
public User(long id, String login, int age) {
this.id = id;
this.login = login;
this.age = age;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@NonNull
@Override
public String toString() {
return id + " " + login + " " + age;
}
}
Класс для работы с БД
package com.example.myapplication;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
public class DBUsers {
public static final String DATABASE_NAME = "mydb.db";
public static final int DATABASE_VERSION = 1;
public static final String USER_TABLE_NAME = "users";
public static final String USER_COLUMN_ID = "id";
public static final String USER_COLUMN_LOGIN = "login";
public static final String USER_COLUMN_AGE = "age";
private SQLiteDatabase database;
public DBUsers(Context context) {
OpenHelper openHelper = new OpenHelper(context);
database = openHelper.getWritableDatabase();
}
public ArrayList<User> selectAll(){
Cursor cursor = database.query(
USER_TABLE_NAME,
null, null, null, null, null, null
);
ArrayList<User> users = new ArrayList<>();
while (cursor.moveToNext()) {
long id = cursor.getLong(cursor.getColumnIndexOrThrow(USER_COLUMN_ID));
String login = cursor.getString(cursor.getColumnIndexOrThrow(USER_COLUMN_LOGIN));
int age = cursor.getInt(cursor.getColumnIndexOrThrow(USER_COLUMN_AGE));
users.add(new User(id, login, age));
}
return users;
}
public long insert(User user){
ContentValues contentValues = new ContentValues();
contentValues.put(USER_COLUMN_LOGIN, user.getLogin());
contentValues.put(USER_COLUMN_AGE, user.getAge());
return database.insert(USER_TABLE_NAME, null, contentValues);
}
private static class OpenHelper extends SQLiteOpenHelper{
OpenHelper(Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String createSQLQuery = "CREATE TABLE " + USER_TABLE_NAME + " (" +
USER_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
USER_COLUMN_LOGIN + " TEXT, " +
USER_COLUMN_AGE + " INTEGER" +
");";
sqLiteDatabase.execSQL(createSQLQuery);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + USER_TABLE_NAME);
onCreate(sqLiteDatabase);
}
}
}
MainActivity.java
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
DBUsers dbUsers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbUsers = new DBUsers(this);
ArrayList<String> stringUsers = new ArrayList<>();
for (User user: dbUsers.selectAll()){
stringUsers.add(user.toString());
}
ListView listView = findViewById(R.id.list);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
stringUsers
);
listView.setAdapter(arrayAdapter);
Button addButton = findViewById(R.id.add_button);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(
getApplicationContext(),
AddUserActivity.class
);
startActivity(intent);
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
/>
<Button
android:text="Добавить"
android:id="@+id/add_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>