NullPointerExcetion при попытке setImageDrawable

вот код который пытаюсь выполнить. На экране отображается набор обоев на задний фон. При выборе должна меняться переменная для использования в другом классе а так же изображение выбранных обоев.

public class ThemeConfig extends AppCompatActivity implements OnClickListener {
static int var_num;

public ImageButton fon1_v;
public ImageButton fon2_v1;
public ImageButton fon2_v2;
public ImageButton fon2_v3;
public ImageButton fon3_v;
public ImageButton fon4_v;

public MainActivity ma;

public SharedPreferences sPref;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
    ma = new MainActivity();

    rest_menu();
    setContentView(R.layout.theme_config);

    try {
        var_num = sPref.getInt("var_n", 2);
    } catch (NullPointerException e) {
        var_num = ma.bg_num;
    }

    fon1_v = (ImageButton) findViewById(R.id.imageButton2);
    fon2_v1 = (ImageButton) findViewById(R.id.imageButton3);
    fon2_v2 = (ImageButton) findViewById(R.id.imageButton4);
    fon2_v3 = (ImageButton) findViewById(R.id.imageButton5);
    fon3_v = (ImageButton) findViewById(R.id.imageButton6);
    fon4_v = (ImageButton) findViewById(R.id.imageButton7);
    
    fon1_v.setOnClickListener(this);
    fon2_v1.setOnClickListener(this);
    fon2_v2.setOnClickListener(this);
    fon2_v3.setOnClickListener(this);
    fon3_v.setOnClickListener(this);
    fon4_v.setOnClickListener(this);
}



public void onBackPressed() {
    SharedPreferences.Editor ed = sPref.edit();
    ed.putInt("var_n", var_num );
    ed.commit();
    super.onBackPressed();
}


@SuppressLint("UseCompatLoadingForDrawables")
public void rest_menu() {
        switch (var_num) {
            case 1:
                fon1_v.setImageDrawable(getDrawable(drawable.fon1_vert_act));
                fon2_v1.setImageDrawable(getDrawable(drawable.fon2_vert1));
                fon2_v2.setImageDrawable(getDrawable(drawable.fon2_vert2));
                fon2_v3.setImageDrawable(getDrawable(drawable.fon2_vert3));
                fon3_v.setImageDrawable(getDrawable(drawable.fon3_vert));
                fon4_v.setImageDrawable(getDrawable(drawable.fon_vertical));
                break;
            case 2:
                fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
                fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1_act));
                fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
                fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
                fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
                fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
                break;
            case 3:
                fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
                fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
                fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2_act));
                fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
                fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
                fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
                break;
            case 4:
                fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
                fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
                fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
                fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3_act));
                fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
                fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
                break;
            case 5:
                fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
                fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
                fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
                fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
                fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert_act));
                fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
                break;
            case 6:
                fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
                fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
                fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
                fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
                fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
                fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical_act));
                break;
        }
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.imageButton2:
            var_num = 1;
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert_act));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
            break;
        case R.id.imageButton3:
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1_act));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
            var_num = 2;
            break;
        case R.id.imageButton4:
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2_act));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
            var_num = 3;
            break;
        case R.id.imageButton5:
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3_act));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
            var_num = 4;
            break;
        case R.id.imageButton6:
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert_act));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical));
            var_num = 5;
            break;
        case R.id.imageButton7:
            fon1_v.setImageDrawable(getDrawable(R.drawable.fon1_vert));
            fon2_v1.setImageDrawable(getDrawable(R.drawable.fon2_vert1));
            fon2_v2.setImageDrawable(getDrawable(R.drawable.fon2_vert2));
            fon2_v3.setImageDrawable(getDrawable(R.drawable.fon2_vert3));
            fon3_v.setImageDrawable(getDrawable(R.drawable.fon3_vert));
            fon4_v.setImageDrawable(getDrawable(R.drawable.fon_vertical_act));
            var_num = 6;
            break;
    }
}

вот логи ошибки которую получаю.

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setImageDrawable(android.graphics.drawable.Drawable)' on a null object reference
    at com.realese.cryptographLite.ThemeConfig.rest_menu(ThemeConfig.java:109)
    at com.realese.cryptographLite.ThemeConfig.onCreate(ThemeConfig.java:44)
    at android.app.Activity.performCreate(Activity.java:7994)
    at android.app.Activity.performCreate(Activity.java:7978)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:223) 
    at android.app.ActivityThread.main(ActivityThread.java:7656) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

Раньше всё работало нормально, добавил использование SharedPreferences и начались танцы с бубном. Код прошу не разносить, Java всего полтора месяца учу и вот набиваю лоб о такое постоянно.


Ответы (0 шт):