0

I have one spinner. I can successfully transfer data to spinner. But spinner's onitemselected property doesn't work. Where do I make a mistake? I want spinner's onitemselected property to work. onitemselected never works. I created a Log, but this function never works.

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, OnItemSelectedListener {
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
  spinner = (Spinner)findViewById(R.id.spinnerMain);
        ArrayAdapter<String>adapterSpinner = new ArrayAdapter<String>(MainActivity.this,
                android.R.layout.simple_spinner_item,Rooms);

        adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapterSpinner);

        spinner.setOnItemSelectedListener(MainActivity.this);

 public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
        spinner.setSelection(position);

        if(parent.getId() == R.id.spinnerMain) {
        switch (position) {
            case 0:
                DatabaseReference dbProducts = FirebaseDatabase.getInstance().getReference("0").child("titles");

                dbProducts.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        productList = new ArrayList<>();

                        if(dataSnapshot.exists()){

                            for(DataSnapshot productSnapshot : dataSnapshot.getChildren()){
                                Product p = productSnapshot.getValue(Product.class);
                                productList.add(p);
                            }

                            adapter = new ProductsAdapter(MainActivity.this, productList);

                            recyclerView.setAdapter(adapter);

                        }
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });
                Log.d("berkoooeeer", "asdasdasdasdasd");

            case 1:
                // Whatever you want to happen when the second item gets selected
                break;
            case 2:
                // Whatever you want to happen when the thrid item gets selected
                break;

        }
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // TODO Auto-generated method stub
    }
stakbeko
  • 31
  • 7

1 Answers1

0

Override your method so you don't miss any overridden method parameters. Also remove spinner.setSelection(position); line. you have already selected it manually.

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
        if(parent.getId() == R.id.spinnerMain) {
       .........
       ..........
       ....
       ...
    }
Deˣ
  • 4,191
  • 15
  • 24