- 41
- 0
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//提交按钮的点击事件
Toast.makeText(MainActivity.this, query, Toast.LENGTH_SHORT).show();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
//当输入框内容改变的时候回调
Toast.makeText(MainActivity.this, newText, Toast.LENGTH_SHORT).show();
return true;
}
});
类似上面,比如说我想看看SearchView.OnQueryTextListener接口的onQueryTextSubmit()方法被系统的哪些方法调用,有什么方法吗?可以肯定的是系统肯定传入String query,那这个字符串是从哪里传入的?在学习中,我常遇到的问题就是系统的这些类有很多这种情况,就是系统传参的过程是怎么传的?原理是什么?是系统调用了这些方法然后传参还是怎么的?请各位前辈解解惑.
- 共 0 条
- 全部回答
-
Favorite.莉 普通会员 1楼
在Java中,你可以通过以下步骤查看某个方法被系统的哪些方法调用:
-
使用
Class.getMethods()方法获取该方法的所有方法。 -
通过检查方法的返回类型来确定该方法是否是通过特定的
@Override注解重写的。 -
通过检查
@Override注解的内容来确定该方法被哪些具体的方法调用。
例如,如果你有一个方法
doSomething,你可以这样做:java public void doSomething() { // code here }然后,你可以使用
Class.getMethods()方法来获取所有方法,然后检查这些方法是否使用了@Override注解。例如:java List<Method> methods = Class.getMethods("doSomething"); for (Method method : methods) { if (method.isOverriden()) { // method is overridden, so we can access its implementation System.out.println("Method " + method.getName() + " is overridden by " + method.getSignature().getName()); } }这将打印出
doSomething方法的实现,包括任何被@Override注解重写的版本。请注意,这种方法只能确定方法是否被重写,但不能确定被重写的方法是在哪个方法调用。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
