在buttons
变量中,我创建了一些引用函数或对象的按钮。
在循环(l.15)中,迭代此buttons
,为每个action
创建一个action
引用。
我的问题是:当调用buttonAction
(l.18)引用的函数时,第19行的buttons.Ok
(它应该引用第16行创建的变量)始终是最后一个循环,在本例中为 1. var buttons = {
2. 'Cancel': function () {
3. // stuff
4. },
5. 'Ok': {
6. text: 'Ok',
7. id: 'btnOk',
8. click: function () {
9. // stuff
10. }
11. }
12. }
13.
14. var buttonsMap = [];
15. for (var i in buttons) {
16. var buttonAction = typeof buttons[i] == 'function' ? buttons[i] : buttons[i].click;
17. var map = {
18. action : function(arg) {
19. buttonAction.apply(arg);
20. }
21. };
22. buttonsMap.push(map);
23. }
24.
25. var instance = new Dialog({
26. buttons : buttonsMap,
27. });
。
我做错了什么?
public class MySpinnerAdapter extends BaseAdapter {
@Override
public void isEnabled(int position) {
return getItem(position).isEnabled();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = View.inflate(parent.getContext(), R.layout.item, null);
}
if(!isEnabled(position)) {
convertView.setEnabled(false);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//NO-OP: Just intercept click on disabled item
}
});
}
return convertView;
}
}