Я новичок в Android и в SQLite.У меня есть столбец «СУММА» просто чисел в SQLite, который я могу показать в ListView.Но я не могу понять, каким образом я понимаю, добавить их все и отобразить в TextView.
Вот база данных Helper
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "people.db";
private static final String TABLE_NAME = "people_table";
private static final String COL1 = "ID";
private static final String COL2 = "DATE";
private static final String COL3 = "DESCRIPTION";
private static final String COL4 = "AMOUNT";
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
" DATE TEXT, DESCRIPTION TEXT, AMOUNT TEXT)";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean addData(String inc_date, String inc_description, String inc_amount){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2, inc_date);
contentValues.put(COL3, inc_description);
contentValues.put(COL4, inc_amount);
long result = db.insert(TABLE_NAME, null, contentValues);
return result != -1;
}
public Cursor showData(){
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
}
public boolean updateData(String id, String name, String email, String tvShow){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL1,id);
contentValues.put(COL2,name);
contentValues.put(COL3,email);
contentValues.put(COL4,tvShow);
db.update(TABLE_NAME, contentValues, "ID = ?", new String[] {id});
return true;
}
public Integer deleteData(String id){
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_NAME, "ID = ?", new String[] {id});
}
}
А вот операция
import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
public class IncPag extends AppCompatActivity {
DatabaseHelper peopleDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inc_pag);
all_inc_dat();
amo_sum();
}
private void all_inc_dat(){
TextView inc_data=findViewById(R.id.tex_inc);
ListView dat_col=findViewById(R.id.dat_col);
ListView des_col=findViewById(R.id.des_col);
ListView amo_col=findViewById(R.id.amo_col);
peopleDB=new DatabaseHelper(this);
Cursor data = peopleDB.showData();
if (data.getCount() == 0) {
inc_data.setText(R.string.no_data_found);
return;
}
ArrayList<String> dat_lis = new ArrayList<>();
ArrayList<String> des_lis = new ArrayList<>();
ArrayList<String> amo_lis = new ArrayList<>();
while (data.moveToNext()) {
dat_lis.add(data.getString(data.getColumnIndex( "DATE")));
des_lis.add(data.getString(data.getColumnIndex( "DESCRIPTION")));
amo_lis.add(data.getString(data.getColumnIndex( "AMOUNT")));
}
ListAdapter dat_ada = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dat_lis);
dat_col.setAdapter(dat_ada);
ListAdapter des_ada = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, des_lis);
des_col.setAdapter(des_ada);
ListAdapter amo_ada = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, amo_lis);
amo_col.setAdapter(amo_ada);
}
private void amo_sum(){
TextView tv_sum=findViewById(R.id.tv_sum);
tv_sum.setText(amount total?);
}
}
Если его легче вычислить в помощнике по базам данных, то покажите мне решение SQLite.или если расчёт проще сделать после просмотра списка