user10873387
user10873387

Reputation:

spinner & adapter error: on a null object reference

Good Evening,
so I am out of clue. I'm getting a
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
Basically I know null object reference means that something is not assigned (Yes, I am new to programming!).

        Spinner spinner = findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.palWerte, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter); //here the error happens
    spinner.setOnItemSelectedListener(this);

[...]

    @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
        case R.id.nav_kaz:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new KalorienzählerFragment()).commit();
            break;
        case R.id.nav_kar:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new KalorienrechnerFragment()).commit();
            break;
        case R.id.nav_erp:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new ErnährungsplanFragment()).commit();
            break;
        case R.id.nav_trp:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new TrainingsplanFragment()).commit();
            break;
        case R.id.nav_trh:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new TrainingshilfeFragment()).commit();
            break;
        case R.id.nav_ala:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                    new AlarmFragment()).commit();
            break;
    }
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

Upvotes: 1

Views: 7445

Answers (3)

mackerel
mackerel

Reputation: 141

Your code:Spinner spinner = findViewById(R.id.spinner1);

This should be Spinner spinner = (Spinner)findViewById(R.id.spinner1);

Or if it is in a fragment

builder.setView(fragmentView);

(Spinner)fragmentView.findViewById(R.id.spinner1);

Hope this help!

Upvotes: 1

matt91t
matt91t

Reputation: 191

Probably you used wrong file. Check where U have spinner and where U try set the adapter. For example spinner exists in settings_activity.xml, but you try set adapter in main_activity.java

Upvotes: 1

Andriy Shevchuk
Andriy Shevchuk

Reputation: 41

It is looks like findViewById(R.id.spinner1); is returning null. Please, try to check a layout in setContentView function in your activity, your Spinner must defined in the layout with id "@+id/spinner1"

Upvotes: 2

Related Questions