我编写了这个小测试应用程序来演示问题,即当用户按下键盘上的搜索按钮时,不会启动可搜索的活动.
我一直在关注开发者指南,但是从我的网络搜索来看,事实证明官方开发者指南错过了一些观点. 从我的SO搜索(没有帮助):
参考1:通过在清单中的元素中添加标记来解决.我还查看了"用户词典"样本的清单(我不知道在哪里可以找到在线样本,或者我会链接到它).该标记位于application元素中.
参考2: res/xml/searchable.xml中的"android:label"和"android:hint"必须是对字符串资源的引用,而不是硬编码字符串.我的是.
参考3:在活动的清单中添加一个带有"android:name ="android.app.default_searchable""(以及"android:value ="<.searchable-activity-name>"")的标签.将要发起.试过这个,似乎没有用.
参考文献4: "您的可搜索活动必须做某事 - 并实际显示结果." 我的确如此,它通过ACTION_SEARCH操作接收意图,并将从intent中检索到的搜索查询字符串传递给名为"performSearch(string)"的方法,该方法在textview中显示字符串.
那么我做错了什么,我该怎么做才能解决这个问题呢?
代码: MainActivity.java - 只有一个SearchView - 用户输入查询并按下键盘上的"搜索"按钮.
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Run Code Online (Sandbox Code Playgroud)
TestTwoActivity.java
public class TestTwoActivity extends Activity {
TextView tv;
private static final String TAG = TestTwoActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_two);
/**
* The following code enables assisted search on the SearchView by calling setSearchableInfo() …Run Code Online (Sandbox Code Playgroud)