Android微调器没有触发onItemSelected

时间:2011-11-18 19:06:23

标签: android spinner

在我的应用程序中,我使用微调器,它显示spinner.performClick()。经过多次尝试后,我注意到我的代码没有触发onItemSelected method,然后我尝试添加@Override注释,但它返回错误并说删除该注释。这是代码:

Spinner colorSpinner = new Spinner(this);
ColorFriendsSpinnerAdapter adapter = new ColorFriendsSpinnerAdapter(getApplicationContext(), liste, R.layout.color_dropdown, new String[] { "Icon" }, new int[] { R.id.colorDropdown });
//adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
colorSpinner.setAdapter(adapter);
colorSpinner.performClick();

colorSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) { 
               editColorXml(position);
        }

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

感谢您的帮助,对不起我的英语。

2 个答案:

答案 0 :(得分:1)

ItemSelectedListner的示例,无需覆盖注释。

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub

            }

            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });

colorSpinner.performClick()之前设置侦听器。在此代码中,将在未设置侦听器的时刻单击微调器。

答案 1 :(得分:0)

试试此代码..

final List<String> list=new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");

final Spinner sp1= (Spinner) findViewById(R.id.spinner1);

ArrayAdapter<String> adp1 = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1,list);
adp1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp1.setAdapter(adp1);

sp1.setOnItemSelectedListener(new OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    Toast.makeText(getBaseContext(), list.get(position), Toast.LENGTH_SHORT).show();
  }

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