निम्नलिखित जांचें: How to have clicking the phone's search button do nothing?एंड्रॉइड - खोज बटन को कैसे अक्षम करें, SearchRequested() पर कैसे कार्यान्वित करें?
लेकिन यह मेरे लिए काम नहीं करता है। किसी के पास कोई अन्य सुझाव है? धन्यवाद। फिल के सुझाव के बाद कोड को उनके उत्तर के अनुसार अद्यतन करना। बग दिखाता है http://www.youtube.com/watch?v=9lekcH1JAf0&feature=youtu.be
इसलिए मैंने नमूना प्रोजेक्ट बनाया है। मैंने इसे दो अलग-अलग फोनों, एंड्रॉइड संस्करण 2.3.5 और 4.1 पर परीक्षण किया है, मैंने यह भी एमुलेटर संस्करण 2.2 पर परीक्षण किया है। बटन शो संवाद पर क्लिक करने के बाद, यह प्रगति संवाद को ठीक दिखाता है, और इसे ऐसा करना जारी रखना चाहिए। लेकिन फोन पर खोज बटन पर क्लिक करके और एमुलेटर प्रगति संवाद गायब हो जाता है। यहां वर्ग है, और मैनिफेस्ट निम्नानुसार है।
वर्तमान व्यवहार यह है कि जब खोज बटन क्लिक किया जाता है तो प्रगति संवाद गायब हो जाता है। अपेक्षित या आवश्यक व्यवहार खोज बटन को अक्षम करना है, या इसी तरह जब संवाद दिखाया जा रहा है और खोज बटन क्लिक किया गया है, तो यह क्लिक संवाद गायब नहीं होता है।
package com.example.test6;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button showDialogButton;
Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDialogButton = (Button) findViewById(R.id.showDialogButton);
showDialogButton.setOnClickListener(showDialog);
context = this;
startSearch(null, false, null, false);
}
private OnClickListener showDialog = new OnClickListener() {
@Override
public void onClick(View v) {
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.show();
}
};
@Override
public boolean onSearchRequested() {
Log.d("onSearchRequested", "search key pressed");
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test6"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="1"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="Test6" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
</application>
</manifest>
मेरा खोज योग्य एक्सएमएल उपलब्ध है संदर्भ के अनुसार res/xml/searchable.xml पर है। यह कैसे मेरे searchable.xml की तरह लग रहा है:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:searchSuggestAuthority="dictionary"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:includeInGlobalSearch="true">
</searchable>
हमें अपना कोड दिखाएं, यह सुझाव # 1 है। – dbDev
जब आप कहते हैं कि "यह काम नहीं करता है", तो क्या आपका मतलब है कि आपको लॉगिंग नहीं दिखाई दे रही है या फोन अभी भी खोज लॉन्च करता है? – DeeV
सही, मुझे अपने ऑनक्रेट() में SearchRequested() को डाले बिना लॉगिंग नहीं दिख रहा है। और खोज लॉन्च नहीं की गई है, लेकिन मेरे संवाद गायब हो गए हैं। –