标签: callback

两个片段之间的EventBus事件未触发

问题:我使用EventBusgreenrobot通过一些事件。不幸的是,对于在两个之间fragments不传递数据的情况,它对我有用。因此,该事件不会被触发。

问题:我会误解这个概念吗?还是我的代码有错误?

注意:两个片段在发送事件时都存在。一个fragment是父母,另一个是孩子以显示详细信息。

详细片段:

public class DetailFragment extends Fragment {
(...)

refreshButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
EventBus.getDefault().post(new IntentRefresh());
            }
        });
(...)

}
Run Code Online (Sandbox Code Playgroud)

EventBus类别:

public class IntentRefresh {

    public IntentRefresh (){}

    public void refreshParent() {

    }

}
Run Code Online (Sandbox Code Playgroud)

父片段:

public class ParentFragment extends Fragment {

    (...)

    @Override
    public void onPause() {
        super.onPause();
        EventBus.getDefault().unregister(this);
    }

    @Override
    public void onResume() {
        super.onResume();
        EventBus.getDefault().register(this);
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void …
Run Code Online (Sandbox Code Playgroud)

android callback event-bus android-fragments

0
推荐指数
1
解决办法
1052
查看次数

返回时c ++ win32api值编码损坏

我几乎不知道如何描述这种行为,所以这可能是我无法自己找到答案的原因 - 我根本就不知道如何命名这个问题.所以,如果标题是误导性的,或者问题在某种程度上是错误的,请耐心等待,但是这里来了

我有一个类方法,我打开一个文件并获取文件名:

OPENFILENAME GuiUtils::ChooseFileDialog(HWND hwnd)
{
    OPENFILENAME ofn;
    char szFile[260];
    ZeroMemory(&ofn, sizeof(ofn));
    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = hwnd;
    ofn.lpstrFile = (LPWSTR)szFile;
    ofn.lpstrFile[0] = '\0';
    ofn.nMaxFile = sizeof(szFile);
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = NULL;
    ofn.nMaxFileTitle = 0;
    ofn.lpstrFilter = TEXT("Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0");
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
    HANDLE hf;

    // Display the Open dialog box. 
    if (GetOpenFileName(&ofn) == TRUE)
    {
        hf = CreateFile(ofn.lpstrFile,
            GENERIC_READ,
            0,
            (LPSECURITY_ATTRIBUTES)NULL,
            OPEN_EXISTING,
            FILE_ATTRIBUTE_NORMAL,
            (HANDLE)NULL);
    }
    return ofn;
}
Run Code Online (Sandbox Code Playgroud)

当我看到 …

c++ winapi encoding callback

0
推荐指数
1
解决办法
107
查看次数

Tkinter Entry小部件后的事件回调

从这里的第一个答案: StackOverflow#6548837 我可以在用户键入时调用回调:

from Tkinter import *

def callback(sv):
    print sv.get()

root = Tk()
sv = StringVar()
sv.trace("w", lambda name, index, mode, sv=sv: callback(sv))
e = Entry(root, textvariable=sv)
e.pack()
root.mainloop() 
Run Code Online (Sandbox Code Playgroud)

但是,该事件发生在每个键入的字符上。当用户完成键入并按下Enter键或Entry小部件失去焦点(即用户单击其他位置)时,如何调用事件?

python events tkinter callback

0
推荐指数
1
解决办法
4366
查看次数

如何通过回调函数传递varargin

我正在编写一个图形窗口的代码,其中包含几个运行回调函数的GUI项.目前我有一个文本框和一个滑块控件,我进行了设置,以便更改文本框值不仅会更改显示的数据,还会更新滑块位置以匹配该值.我varargin遇到的问题是试图保持我的参数(在创建图形窗口时输入到main函数)被包含在父cell变量中.当我的顶层varargin包含一个值参数对,varargin是一cell维的1x2的.没关系.通常,可以将所有这些参数传递给内部函数调用,如下所示:

function topfunc(varargin)
%code
do_something(varargin{:})
Run Code Online (Sandbox Code Playgroud)

该函数dosomething可以看到正确的参数列表.但是,当我通过callback定义传递varargins时,就像在

txtui = uicontrol(hf,'Style','edit','string',fristframe,'backgroundcolor','y',...
    'position',[10 100 50 20],'Tag','Scaler','UserData',lsatframe,...
    'Callback',{@doslide,adcname,mode,goodframes,{varargin{:}} } ); 
Run Code Online (Sandbox Code Playgroud)

然后该函数 doslide调用绘图更新功能dordplot

 function doslide(theui,event,fileName,mode, goodframes,varargin)
% code snipped...

dordplot(slidinfo,event,fileName,mode,goodframes,varargin{:});
end
Run Code Online (Sandbox Code Playgroud)

里面doslide,varargin是含有期望的1×2单元1x1的细胞.

我在我的最终函数中添加了一个kludge修复程序,其中varargin实际使用的内容与行

varargin = varargin{:};
Run Code Online (Sandbox Code Playgroud)

但是,varargin首先将它包裹在一个细胞内似乎是错误的.
有没有修复,或者我是否错误地定义了我的回调函数调用?

matlab callback variadic-functions cell-array matlab-gui

0
推荐指数
1
解决办法
481
查看次数

回调不是一个功能?

我知道这已被问了好几百次了,不过我以前写过很多回调函数而且我觉得我对我的问题有点盲目/

我有一个功能:

function firstSend(){
    client.write(Buffer.from([0x5C,0x57,0x31,0x32,0x33,0x34,0x2F]));

    check(function(msg){
        if(msg == true){
            console.log("Lets go");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

调用该函数check与回调

完成后,check函数返回true:

function check(callback) {
    let m;
    if(message != null) m = message.trim();

    if(m != "OK"){
        setTimeout(check, 1000);
        return;
    }
    return callback(true);
}
Run Code Online (Sandbox Code Playgroud)

一切正常,直到它尝试进行回调,此时它告诉我它不是一个函数.

我已经记录了回调,它记录为一个函数,所以我有点难过

javascript callback

0
推荐指数
1
解决办法
44
查看次数

callback返回值但是apears是未定义的

我是节点和回调的新手.我试图将一个组列表拆分成一个数组.这些组用逗号分隔或用" - "分隔.最后一个意味着它是一个间隔,所以如果有22-25则意味着:22,23,24,25.我尝试了以下代码.

var groups = ["13-16","21-24","33"];
var splitgroups = function(groups, callback){
   var result = [];
   console.log(groups.length);
   for(var i=0; i<groups.length; i++){
     var cbr = callback(groups[i]);
     result = result.concat(cbr);
   }
  return result;
}

var handlegroupinterval = function(group){
  var temparr = [];
  try {
    temparr = group.split('-');
  }
  catch(err) {
    console.log(err.message);
  }
  console.log("groups split: "+group);
  if(temparr.length>1){
      var lowerbound = parseInt(temparr[0]);
      var upperbound = parseInt(temparr[1]);  
      temparr = [];
      for(var j=lowerbound; j<=upperbound; j++){
        temparr.push(j);
      }  
  }    
  return temparr;
}
var tempgroups = splitgroups(groups, function(res){handlegroupinterval(res)}); …
Run Code Online (Sandbox Code Playgroud)

javascript callback node.js

0
推荐指数
1
解决办法
27
查看次数

gRPC将来的回调得到异常:StatusRuntimeException:已取消

io.grpc.StatusRuntimeException: CANCELLED
    at io.grpc.Status.asRuntimeException(Status.java:539)
    at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:439)
    at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:422)
    at io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:74)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:508)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$700(ClientCallImpl.java:425)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:540)
    at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
    at io.grpc.internal.SerializeReentrantCallsDirectExecutor.execute(SerializeReentrantCallsDirectExecutor.java:64)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.closed(ClientCallImpl.java:544)
    at io.grpc.internal.AbstractClientStream2$TransportState.closeListener(AbstractClientStream2.java:307)
    at io.grpc.internal.AbstractClientStream2$TransportState.transportReportStatus(AbstractClientStream2.java:287)
    at io.grpc.netty.NettyClientHandler.cancelStream(NettyClientHandler.java:455)
    at io.grpc.netty.NettyClientHandler.write(NettyClientHandler.java:231)
    at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:739)
    at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:731)
    at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:817)
    at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:724)
    at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1022)
    at io.netty.channel.AbstractChannel.write(AbstractChannel.java:291)
    at io.grpc.netty.WriteQueue.flush(WriteQueue.java:124)
    at io.grpc.netty.WriteQueue.access$000(WriteQueue.java:46)
    at io.grpc.netty.WriteQueue$1.run(WriteQueue.java:58)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:445)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

当我在带有Future&回调的grpc服务器句柄进程中调用另一个grpc服务时,出现了上述异常。

我的代码是这样的:

handle(){

....

***FutureClient futureClient = ...
ListenableFuture<***> future = futureClient.call(...);
Futures.addCallback(future, new FutureCallback<>() {...});

...

}
Run Code Online (Sandbox Code Playgroud)

进程handle()完成后,访问被取消。

我该如何解决该问题?

asynchronous future callback grpc

0
推荐指数
1
解决办法
1995
查看次数

在Rails 5的控制器中使用什么而不是after_commit?

今天我尝试使用一个很好的回调:after_commit在对象写入数据库时​​触发,但是,我收到了来自Rails的错误消息:

ActionController::RoutingError (undefined method `after_commit' for ImagesController:Class
Did you mean?  after_action):
Run Code Online (Sandbox Code Playgroud)

嗯,这很令人尴尬!似乎这个回调被弃用了!通过搜索,我尝试使用:after_create_commit,它给了我同样的错误.

第三步是尝试:after_action.这里提出了一个问题: 如何使其工作方式与:after_commit?

我已经尝试过apidock.com - 它真的很小!我也尝试过api.rubyonrails.org - 它是关于块的,但我不是一个了解它的红宝石忍者.所以我真的很感激你是否可以在它上面洒一些光!

ImagesController:

class ImagesController < ApplicationController
  after_create_commit :take_image_to_album

  def take_image_to_album
    if check_album
      add_inner_to_album(@image)
    end
  end

  def create
    @image = Image.create(image_params.merge(:user_id => current_user.id)

    respond_to do |format|
      unless @image.save
        format.html { render :show, notice: "Error!" }
        format.json { render json: @image.errors, status: :unprocessable_entity }
      else
        format.html
        format.json { render :show, status: :ok, location: @image }
      end
    end
  end
  ...

  def add_inner_to_album(image)
    contents …
Run Code Online (Sandbox Code Playgroud)

ruby controller callback ruby-on-rails-5

0
推荐指数
1
解决办法
710
查看次数

在javascript中,''function({})(req,res)''的最后一个括号是什么意思?

我终于在一年后重新开始认真的软件开发并丢失了我的javascript参考书.对不起,如果这是一个愚蠢的问题,但我已经忘记了这个结束括号在javascript中的含义.

这是一些示例代码:

login: function (req, res) {
    example.function('optionA', function (err, user) {
        if (err) return res.send(err);
        return res.send(user);
    })(req, res);
});
Run Code Online (Sandbox Code Playgroud)

是(req,res)令我困惑的是,这究竟是如何起作用的?

提前致谢.现在感觉不像阿尔伯特爱因斯坦!

javascript callback node.js

0
推荐指数
1
解决办法
62
查看次数

使用带有回调函数的函数表达式,实现了箭头函数

当我使用箭头函数作为回调函数时,我在下面的代码工作得很好

var getNumber = function (argument, callback) {   
callback(argument - 1);
} 
getNumber(10, (x)=>{
console.log(x); // x = 9
});
Run Code Online (Sandbox Code Playgroud)

现在当我想在下面的代码中将箭头函数更改为函数表达式时.

var getNumber = function (argument, callback) {
callback(argument - 1);
}
getNumber(10, action(x)); // x is not defined 
function action(x){
console.log(x);
}
Run Code Online (Sandbox Code Playgroud)

遗憾的是我得到错误说x没有定义.

javascript binding callback

0
推荐指数
1
解决办法
303
查看次数