Spinner set_on_item_selected_listener没有做任何事情

时间:2018-02-04 21:20:00

标签: java android spinner android-arrayadapter android-spinner

我想将firebase中的日期数据放入微调器。Here is my DB首先尝试使用FirebaseListAdapter,但它仍然显示错误Hasmap无法转换为字符串。所以我做了这个

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充满了日期,但是当我选择任何日期时,它没有显示吐司,也没有记录位置,那有什么不对?

1 个答案:

答案 0 :(得分:0)

 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) {

                    }
                });



            }
        }