I'm trying to get all ID and IncomeCategoryName from DB and put them into a listview.
The problem is that Package Name. ClassName@hexcode
is displayed instead of ID and IncomeCategory Name.
Class File
public class IncomeCategoriesClass {
private Integer CATEGORY_ID;
private String CATEGORY_NAME;
public IncomeCategoriesClass(Integer CATEGORY_ID, String CATEGORY_NAME) {
this.CATEGORY_ID = CATEGORY_ID;
this.CATEGORY_NAME = CATEGORY_NAME;
}
public IncomeCategoriesClass() {
this.CATEGORY_NAME = CATEGORY_NAME;
}
public Integer getCATEGORY_ID() {
return CATEGORY_ID;
}
public void setCATEGORY_ID(Integer CATEGORY_ID) {
this.CATEGORY_ID = CATEGORY_ID;
}
public String getCATEGORY_NAME() {
return CATEGORY_NAME;
}
public void setCATEGORY_NAME(String CATEGORY_NAME) {
this.CATEGORY_NAME = CATEGORY_NAME;
}
}
Database helper snippet
public List get_AllIncomeCategories(){ List AllIncomeCategories = new LinkedList<>(); String queryString = "Select * FROM " + INCOME_CATEGORIES_TABLE; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(queryString,null);
IncomeCategoriesClass incomeCategoriesClass;
if(cursor.moveToFirst()){
do {
incomeCategoriesClass = new IncomeCategoriesClass();
incomeCategoriesClass.setCATEGORY_ID(Integer.parseInt(cursor.getString(0)));
incomeCategoriesClass.setCATEGORY_NAME(cursor.getString(1));
AllIncomeCategories.add(incomeCategoriesClass);
}while (cursor.moveToNext());
}
cursor.close();
db.close();
return AllIncomeCategories;
}
AddEditincomeCategoriesActivity
public class AddEditIncomeCategoriesActivity extends AppCompatActivity {
//Define Screen Fields And Variables
ListView listviewAllIncomeCategories;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_edit_income_categories);
//Initialize Screen Field Variables
btn_ViewAllIncomeCategory = findViewById(R.id.btn_ViewAllIncomeCategory);
listviewAllIncomeCategories = findViewById(R.id.listviewAllIncomeCategories);
//View All Income Categories on Button Click
btn_ViewAllIncomeCategory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DataBaseHelper dataBaseHelper = new DataBaseHelper(AddEditIncomeCategoriesActivity.this);
List<IncomeCategoriesClass> AllIncomeCategories;
AllIncomeCategories = dataBaseHelper.get_AllIncomeCategories();
ArrayAdapter adapter = new ArrayAdapter(AddEditIncomeCategoriesActivity.this,android.R.layout.simple_list_item_1,AllIncomeCategories);
listviewAllIncomeCategories.setAdapter(adapter);
}
});
//Add Income Category on Button Click
}
}
It is outputing data but not the data I am looking for, it is Packagename.Class@HexCode
instead of 1 Cash, 2 Credit Cards, etc.
What am I doing wrong and how can I do this properly?