Здравствуйте, уважаемые! Помогите пожалуйста внести изменения в код. Я ввожу информацию, а именно фамилию и баллы и она отображается в logcat. Мне необходимо сделать так, что бы вся информация выводилась на экран.
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//создание элементов экрана
Button btnAdd, btnRead, btnClear;
EditText etFamil, etBall;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//прописываем обработчики
btnAdd = (Button) findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(this);
btnRead = (Button) findViewById(R.id.btnRead);
btnRead.setOnClickListener(this);
btnClear = (Button) findViewById(R.id.btnClear);
btnClear.setOnClickListener(this);
etFamil = (EditText) findViewById(R.id.etFamil);
etBall = (EditText) findViewById(R.id.etBall);
dbHelper = new DBHelper(this); }
@Override
public void onClick(View v) {
// получаем данные из полей ввода
String famil = etFamil.getText().toString();
String ball = etBall.getText().toString();
//класс для управления базой sqlite
SQLiteDatabase database = dbHelper.getWritableDatabase();
//контент используется для добавления новых строк в таблицу
ContentValues contentValues = new ContentValues();
//разделение действий по отдельным кнопкам
switch (v.getId()) {
case R.id.btnAdd:
Log.d("mLog", "Записано в базу");
contentValues.put(DBHelper.KEY_FAMIL, famil);
contentValues.put(DBHelper.KEY_BALL, ball);
database.insert(DBHelper.TABLE_ABITYRS, null, contentValues);
break;
//чтение всех записей из таблицы квери
case R.id.btnRead:
//делаем запрос всех данных из таблицы abityrs, получаем Cursor
Cursor cursor = database.query(DBHelper.TABLE_ABITYRS, null, null, null, null, null, null);
if (cursor.moveToFirst()) {
//определяем номера столбцов
int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
int familIndex = cursor.getColumnIndex(DBHelper.KEY_FAMIL);
int ballIndex = cursor.getColumnIndex(DBHelper.KEY_BALL);
do { Log.d("mLog", "ID = " + cursor.getInt(idIndex) + ", famil = " + cursor.getString(familIndex) + ", ball = " + cursor.getString(ballIndex));
} while (cursor.moveToNext());
} else Log.d("mLog","Нет записей");
cursor.close();
break;
case R.id.btnClear:
database.delete(DBHelper.TABLE_ABITYRS, null, null);
break; }
dbHelper.close();
}
}
DBHelper
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper{
public static final int DATABASE_VERSION = 2;
public static final String DATABASE_NAME = "abiterDb";
public static final String TABLE_ABITYRS = "abityrs";
public static final String KEY_ID = "_id";
public static final String KEY_FAMIL = "famil";
public static final String KEY_BALL = "ball";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
//вызывается при первом создании базы
public void onCreate(SQLiteDatabase db)
//логика создания таблиц
{ db.execSQL("create table " + TABLE_ABITYRS + "(" + KEY_ID + " integer primary key," + KEY_FAMIL + " text," + KEY_BALL + " text" + ")"); }
@Override
//вызывается при внесении изменений
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//запрос в базу данных на уничтожение таблицы
db.execSQL("drop table if exists " + TABLE_ABITYRS);
onCreate(db);
}
}
Activiyt_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/etFamil"
android:hint="Фамилия студента"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20pt">
</EditText>
<EditText
android:id="@+id/etBall"
android:hint="Набранные баллы"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20pt"
>
</EditText>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Добавить"
android:layout_marginLeft="8pt"
android:layout_marginTop="30pt">
</Button>
<Button
android:id="@+id/btnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Просмотр базы"
android:layout_marginLeft="4pt"
android:layout_marginTop="30pt">>
</Button>
<Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Отчистить"
android:layout_marginLeft="4pt"
android:layout_marginTop="30pt">>
</Button>
</LinearLayout>
</LinearLayout>