如何看某个方法被系统的哪些方法调用?

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,那这个字符串是从哪里传入的?在学习中,我常遇到的问题就是系统的这些类有很多这种情况,就是系统传参的过程是怎么传的?原理是什么?是系统调用了这些方法然后传参还是怎么的?请各位前辈解解惑.

阅读 2.2k
2 个回答

打断点,看调用栈。

这个是很简单的观察者模式,你可以直接在android studio点击去然搜索这个方法,一般都会有多处调用,也有可能只有一个。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题