Android Spinner不适用于ItemSelected



我有一个旋转器。我可以成功地将数据传输到旋转器。但是Spinner的OnItemeclected属性行不通。我在哪里犯错?我希望Spinner的OnItemeclectected属性能够工作。OnItemected永远无法使用。我创建了一个日志,但是此功能永远无法工作。

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
    }

覆盖您的方法,因此您不会错过任何被覆盖的方法参数。还删除spinner.setSelection(position);行。您已经手动选择了它。

@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
        if(parent.getId() == R.id.spinnerMain) {
       .........
       ..........
       ....
       ...
    }

最新更新