【问题标题】:Spinner set_on_item_selected_listener not doing anything微调器 set_on_item_selected_listener 没有做任何事情
【发布时间】:2018-02-05 15:31:50
【问题描述】:

我只想将来自 firebase 的日期数据放入微调器中。 起初尝试使用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 填满了日期,但是当我选择任何日期时,它没有显示 toast 也没有记录位置,这是怎么回事?

【问题讨论】:

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


    【解决方案1】:
     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) {
    
                        }
                    });
    
    
    
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 2016-10-02
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多