小编elC*_*rda的帖子

如何从网格操作列调用控制器的操作

我的网格中有一个动作列,需要在点击它之后执行许多非平凡的操作.我不想仅使用处理程序方法来避免代码中的重复.我想从控制器方法处理click事件,可以从更多方面调用.

这是我对action列的定义:

               {
                    header: translator.translate('actions'),
                    xtype: 'actioncolumn',
                    width: 50,
                    items:[{
                        id     : 'detailContactPerson',
                        icon   : '/resources/images/pencil.png',
                        tooltip: translator.translate('show_detail')
                    }]
                },
Run Code Online (Sandbox Code Playgroud)

但是现在我不知道如何编写Component查询定义来设置监听器.

 init: function() {
    this.control({
       'detailContactPerson': {
           click: function(obj) {
                 var contactPerson = obj.up('container').contactPerson;
                 this.detail(contactPerson);
            }
         },
Run Code Online (Sandbox Code Playgroud)

我试过的第二种方法是直接从处理程序方法调用控制器的方法.它看起来像这样:

                  {
                    header: translator.translate('actions'),
                    xtype: 'actioncolumn',
                    width: 50,
                    items:[{
                        id     : 'detailContactPerson',
                        icon   : '/resources/images/pencil.png',
                        handler: function(contactPerson){
                            Project.controller.contactPerson.detail(contactPerson);
                        },
                        tooltip: translator.translate('show_detail')
                    }
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它不支持调用控制器方法的方法(没有引发方法异常).

可以somone帮我构建工作组件查询,或者显示一些如何从外部调用控制器方法的问题?

extjs extjs4

9
推荐指数
2
解决办法
3万
查看次数

如何使用微调器setOnItemLongClickListener

当用户长时间点击某个项目时,我试图使Spinner的行为方式不同.我有一些项目的旋转器,我想要两件事.

  1. 当用户简单地点击我想要正常的项目时,选择它.
  2. 当用户长时间点击我要显示对话框的项目时,使用"编辑项目","删除项目"等选项.

第一步效果很好(当然),但是当我尝试执行第二个任务时,我无法使微调器生成longClicked事件.

这是我的代码:

    this.projectSpinner = (Spinner) this.findViewById(R.id.SpinnerProjects);
    this.projectSpinner.setLongClickable(true);

    this.projectSpinner.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
        public boolean onItemLongClick(AdapterView<?> arg0, 
                                       View arg1, 
                                       int arg2, 
                                       long arg3) {
            Toast.makeText(
                 AndroidTimeTrackerMainActivity.this, 
                 "Long click", 
                 Toast.LENGTH_SHORT).show(); // This toast doesn't show up.
            return false;
        }

    });
Run Code Online (Sandbox Code Playgroud)

android spinner

8
推荐指数
2
解决办法
6333
查看次数

标签 统计

android ×1

extjs ×1

extjs4 ×1

spinner ×1