gpt4 book ai didi

android - SearchView 不搜索

转载 作者:行者123 更新时间:2023-11-29 16:07:42 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序布局中使用 SearchView 在我的 Android 应用程序中实现搜索功能。我有意选择将其放在布局中而不是操作栏中。

问题是,一旦我键入搜索文本并按下键盘上的回车/搜索键,就没有任何反应。永远不会调用可搜索的 Intent 。我觉得我一定是遗漏了一些导致搜索无法触发的东西

如果我没有按照下面的正确格式包含代码,我深表歉意。如果有任何其他信息有帮助,请告诉我。提前致谢!

list

<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.lotr.arda.MainActivity"
android:label="@string/app_name" >

</activity>
<activity
android:name=".WebActivity"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".menuActivity"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">
</activity>
<activity android:name=".searchActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
</application>
</manifest>

资源/XML/搜索

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/searchhint" >
</searchable>

搜索 Activity .java

package com.lotr.arda;

import android.app.ListActivity;
import android.app.SearchManager;
import android.content.Intent;
import android.os.Bundle;

public class searchActivity extends ListActivity{

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_page);

// Get the intent, verify the action and get the query
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);

System.out.println(query);
//doMySearch(query);
}
}
}

menuActivity.java(searchview所在的layout)

package com.lotr.arda;

import com.google.ads.AdRequest;
import com.google.ads.AdView;
import android.app.Activity;
import android.app.SearchManager;
import android.app.SearchableInfo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SearchView;



public class menuActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_page);
try{

AdView myad = (AdView) findViewById(R.id.ad);
AdRequest adRequest = new AdRequest();

myad.loadAd(adRequest);

SearchManager searchManager = (SearchManager)getSystemService(SEARCH_SERVICE);
SearchableInfo searchableInfo = searchManager.getSearchableInfo(getComponentName());

SearchView sv = (SearchView)findViewById(R.id.searchView1);
sv.setSearchableInfo(searchableInfo);

Button alpha = (Button)this.findViewById(R.id.button1);
alpha.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(menuActivity.this, MainActivity.class);
startActivity(intent);
}});
}catch(Exception e) {System.out.println(e.toString());}
}
}

最佳答案

您缺少 SearchView#setOnQueryTextListener。您需要覆盖 OnQueryTextSubmit() 方法才能实际执行和处理您的搜索。

编辑:我假设您正在查询数据库并使用游标获取结果。

mSearchView.setOnQueryTextListener(new OnQueryTextListener()
{
@Override
public void onQueryTextSubmit(String query) {
Cursor c = getContentResolver.query(URI, null, "col_1 = ? OR col_2 = ?", new String[] { query, query }, null);
//Do whatever you want with your Cursor here
}
}
);

关于android - SearchView 不搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16677994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com