Я делаю приложение, которое может хранить 3 Data Income, ExpenseName и ExpenseCost.Я пытаюсь получить только доход для txt_incomeview, игнорируя другие 2 данных, но я не знаю, как и то же самое для ExpenseName и ExpenseCost.В базе данных я сохранил доход в той же таблице, но значения ExpenseName и ExpenseCost равны нулю.
Доход
Пример.nullnull100
так же, как ExpenseName и ExpenseCost
Ex.name100null
и так же, как я сохранил его в базе данных SQL
MainActivity:
package com.example.back4app.userregistrationexample.Classes;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.example.back4app.userregistrationexample.Data.DatabaseHelper;
import com.example.back4app.userregistrationexample.R;
public class MainActivity extends AppCompatActivity {
DatabaseHelper mDatabaseHelper;
private TextView nameview, costview, income;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
income = (TextView) findViewById(R.id.txt_incomeview);
mDatabaseHelper = new DatabaseHelper(this);
Cursor cursor = mDatabaseHelper.getData();
if(cursor.getCount()==0){
Toast.makeText(getApplicationContext(), "No Data", Toast.LENGTH_SHORT).show();
}
else{
while (cursor.moveToNext()){
}
}
final Button btn_income = findViewById(R.id.btn_Income);
btn_income.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, IncomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
final Button btn_expense = findViewById(R.id.btn_Expense);
btn_expense.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ExpenseActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
}
}
DatabaseHelper:
package com.example.back4app.userregistrationexample.Data;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "DatabaseHelper";
private static final String TABLE_NAME = "Financial";
private static final String COL1 = "ID";
private static final String COL2 = "item";
private static final String COL3 = "cost";
private static final String COL4 = "income";
public DatabaseHelper(Context context) {
super(context, TABLE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
COL2 + " TEXT, " +
COL3 + " INTEGER, " +
COL4 + " INTEGER);";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean addData(String item, String cost, String income) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2, item);
contentValues.put(COL3, cost);
contentValues.put(COL4, income);
Log.d(TAG, "addData: Adding " + item + cost + income + " to " + TABLE_NAME);
long result = db.insert(TABLE_NAME, null, contentValues);
//if date as inserted incorrectly it will return -1
if (result == -1) {
return false;
} else {
return true;
}
}
/**
* Returns all the data from database
* @return
*/
public Cursor getData(){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT * FROM " + TABLE_NAME;
Cursor data = db.rawQuery(query, null);
return data;
}
/**
* Returns only the ID that matches the name passed in
* @param name
* @return
*/
public Cursor getItemID(String name){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT " + COL1 + " FROM " + TABLE_NAME +
" WHERE " + COL2 + " = '" + name + "'";
Cursor data = db.rawQuery(query, null);
return data;
}
/**
* Updates the name field
* @param newName
* @param id
* @param oldName
*/
public void updateName(String newName, int id, String oldName){
SQLiteDatabase db = this.getWritableDatabase();
String query = "UPDATE " + TABLE_NAME + " SET " + COL2 +
" = '" + newName + "' WHERE " + COL1 + " = '" + id + "'" +
" AND " + COL2 + " = '" + oldName + "'";
Log.d(TAG, "updateName: query: " + query);
Log.d(TAG, "updateName: Setting name to " + newName);
db.execSQL(query);
}
/**
* Delete from database
* @param id
* @param name
*/
public void deleteName(int id, String name){
SQLiteDatabase db = this.getWritableDatabase();
String query = "DELETE FROM " + TABLE_NAME + " WHERE "
+ COL1 + " = '" + id + "'" +
" AND " + COL2 + " = '" + name + "'";
Log.d(TAG, "deleteName: query: " + query);
Log.d(TAG, "deleteName: Deleting " + name + " from database.");
db.execSQL(query);
}
}
Я пытался использовать
ArrayList<String> listData = new ArrayList<>();
, но этот метод, который я видел на YouTube, отображал только 1 столбец в ListView, но я хочу, чтобы он былпросмотрено в textview