'How do I get the value of column gender in SQLite to set an image (male or female character)? Android Studio

I want to get the value of column gender in SQLite and set an image of a male or female character.

This is what I have tried so far. Whenever I run the code, it shows a female character even if I choose male character.

This is the GenderSelectionActivity.

ImageViewBoy.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
    
                GenderHolder="Male";
    
                sqLiteDatabase = sqLiteHelper.getWritableDatabase();
                sqLiteDatabase.execSQL("UPDATE "+ SQLiteHelper.TABLE_NAME +" SET "+ SQLiteHelper.Table_Column_2_Gender +" = '"+GenderHolder+"'  WHERE "+ SQLiteHelper.Table_Column_ID +" = (SELECT max(" + SQLiteHelper.Table_Column_ID +") FROM " + SQLiteHelper.TABLE_NAME + ")");
            }
        });
        ImageViewGirl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
    
                GenderHolder="Female";
    
                sqLiteDatabase = sqLiteHelper.getWritableDatabase();
                sqLiteDatabase.execSQL("UPDATE "+ SQLiteHelper.TABLE_NAME +" SET "+ SQLiteHelper.Table_Column_2_Gender +" = '"+GenderHolder+"'  WHERE "+ SQLiteHelper.Table_Column_ID +" = (SELECT max(" + SQLiteHelper.Table_Column_ID +") FROM " + SQLiteHelper.TABLE_NAME + ")");
            }
        });

This is the MainMenuActivity

        ImageView profile = (ImageView) findViewById(R.id.imageView);
    
        sqLiteDatabase = sqLiteHelper.getReadableDatabase();
        Cursor cursor;
    
    
        cursor = sqLiteDatabase.rawQuery("SELECT " + SQLiteHelper.Table_Column_2_Gender + " FROM " + SQLiteHelper.TABLE_NAME + " ORDER BY " + sqLiteHelper.Table_Column_ID + " DESC LIMIT 1", null);

    
        cursor.getColumnIndex(SQLiteHelper.Table_Column_2_Gender);
    
        if (SQLiteHelper.Table_Column_2_Gender.equals("Male")){
            profile.setImageResource(R.drawable.user_boy);
        } else {
            profile.setImageResource(R.drawable.user_girl);
        }
        profile.getLayoutParams().height = 100;
        profile.getLayoutParams().width = 100;
    
        return cursor;
    }

Any help you can give would be greatly appreciated.



Solution 1:[1]

I have done my research and got the answer that I needed.

   public Cursor DisplayProfile(){
    ImageView profile = (ImageView) findViewById(R.id.imageView);

    sqLiteDatabase = sqLiteHelper.getReadableDatabase();
    Cursor cursor;

    String gender = new String();

    cursor = sqLiteDatabase.rawQuery("SELECT " + SQLiteHelper.Table_Column_2_Gender + " FROM " + SQLiteHelper.TABLE_NAME + " ORDER BY " + sqLiteHelper.Table_Column_ID + " DESC LIMIT 1", null);


    if (cursor.moveToFirst()) {

        do {
            gender = cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table_Column_2_Gender));
        }
        while (cursor.moveToNext());
        cursor.close();
    }

    if (gender.equals("Male")){
        profile.setImageResource(R.drawable.user_boy);
    } else {
        profile.setImageResource(R.drawable.user_girl);
    }
    profile.getLayoutParams().height = 100;
    profile.getLayoutParams().width = 100;

    return cursor;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1