简体   繁体   English

微调框set_on_item_selected_listener不执行任何操作

[英]Spinner set_on_item_selected_listener not doing anything

I wanted to put just dates data from firebase into a spinner. 我只想将Firebase中的日期数据放到微调器中。 这是我的数据库 At first tried to use FirebaseListAdapter but it kept showing error Hasmap cant be converted to String. 最初尝试使用FirebaseListAdapter但它一直显示错误Hasmap无法转换为String。 So I did this 所以我做到了

List<String> date = new ArrayList<String>();
ArrayAdapter<String> dataAdapter ;
private String selectedTag;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    alpha = FirebaseDatabase.getInstance().getReference().child("q").child("r");
    spinner = findViewById(R.id.spinner);


    alpha.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            for ( DataSnapshot ds : dataSnapshot.getChildren()){
               date.add(ds.getKey());
               Log.i("date", date.toString());

            }
        } 
        // after onCanelled
 dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, date);


    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            // On selecting a spinner item
            selectedTag = parent.getItemAtPosition(position).toString();
            Log.i("position", String.valueOf(position));

            Toast.makeText(MainActivity.this, "Selected: " + selectedTag, Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
}

Spinner gets filled with dates but when I select any date it is not showing the toast and also not logging the position, what's wrong? 微调框充满日期,但是当我选择任何日期时,它既不显示吐司也不记录位置,这是怎么回事?

 alpha.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            for ( DataSnapshot ds : dataSnapshot.getChildren()){
               date.add(ds.getKey().toString());
               Log.i("date", date.toString());
                dataAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, date);


                dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);


                spinner.setAdapter(dataAdapter);

                spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                        // On selecting a spinner item
                        selectedTag = parent.getItemAtPosition(position).toString();
                        Log.i("position", String.valueOf(position));

                        Toast.makeText(MainActivity.this, "Selected: " + selectedTag, Toast.LENGTH_SHORT).show();
                    }


                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {

                    }
                });



            }
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM