我的网格中有一个动作列,需要在点击它之后执行许多非平凡的操作.我不想仅使用处理程序方法来避免代码中的重复.我想从控制器方法处理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帮我构建工作组件查询,或者显示一些如何从外部调用控制器方法的问题?
当用户长时间点击某个项目时,我试图使Spinner的行为方式不同.我有一些项目的旋转器,我想要两件事.
第一步效果很好(当然),但是当我尝试执行第二个任务时,我无法使微调器生成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)