Android -旋转器不能选择项目



我的旋转器有问题。当按下按钮时,我从edittext动态地在旋转器上添加项目。当按下旋转按钮时,项目可以正确显示,但是不能进行选择,并且旋转按钮上没有显示。

代码如下:

    final ArrayList<String> players = new ArrayList<String>();
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_dropdown_item, players); 
    final Spinner spinnerplayers = (Spinner)findViewById(R.id.spinnerplayers);
    final ImageButton addbutton = (ImageButton)findViewById(R.id.addbutton);
    final EditText editname = (EditText)findViewById(R.id.editname);
    final EditText editnum = (EditText)findViewById(R.id.editnum);
    addbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            players.add(editname.getText().toString()+ " " + editnum.getText().toString());
            editname.setText("");
            editnum.setText("");
        }
    });
    spinnerplayers.setAdapter(adapter);
    final ImageButton removebutton = (ImageButton)findViewById(R.id.removebutton);
    removebutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            //players.remove(spinnerplayers.getSelectedItem().toString());
        }
    });

如果需要,微调器xml是:

<Spinner
        android:id="@+id/spinnerplayers"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1" />

你知道问题在哪里吗?

您是否尝试指定:

adapter.setNotifyOnChange(true);

原因是你用android. r.l outout .simple_spinner_item.

你可以写你自己的Adapter类:

Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
spinner.setAdapter(new MyCustomAdapter(CLASS.this, R.layout.spinner_layout, players));

那么它看起来就像你在spinner_layout

中设计的那样

如果您的意思是按钮上的clicklistener不工作,则必须为此制作自定义适配器。您将在适配器的getView方法中应用侦听器。

添加你必须添加OnItemSelectedListener

 YOUR_SPINNER.setOnItemSelectedListener(new OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int position, long arg3) {
                            }
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
            });

最新更新