2 clcurie 11 clcurie_11 于 2013.07.09 16:03 提问

Spinner 中 onitemselected 监听器的问题

我想在按钮的点击上以程序的形式创建一个 spinner:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.leave_balance);
spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, list);
    spinner.setAdapter(spinnerArrayAdapter);
Button  b = (Button)findviewbyid(R.id.button1);
b.setonclicklistener(new Onclicklistener){
   public void onClick(View v) {
            spinner.performClick();
        }
 spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            Toast.maketext(context,"selectedspinner",Toast.LENGTH_SHORT).show();
        }
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });
}
}

我的问题是不能获取 toast,比如 spinners 的 onitemselectedlistner 不能触发。
如何解决这个问题?

2个回答

znl_12
znl_12   2013.07.10 17:44
已采纳

Spinner 需要添加在一个parent 中添加,在 onItemSelected 上调用。
1. 在 XML 上添加 spinner,然后设置宽和高为 0dp。
2. 使用 findViewById。

hilter1949
hilter1949   2013.07.10 17:11

在onItemSelected方法中打印下日志,应该是spinner 的item控件焦点被截获了,导致没响应

Csdn user default icon
上传中...
上传图片
插入图片