Ben aşağıdaki ekran uygulamak için benim application.I içinde Arama gibi WhatsApp uygulamak zorunda çalışıyorum çağrılmaz seçenek menüsü olarak.Aranabilir Aktivite
XML: arama simgesi arama görünümünü tıklayarak On
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@drawable/search"
android:orderInCategory="100"
android:title="@string/action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView" />
</menu>
açılacak.
KODU:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_friend_list_activity, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_search:
Toast.makeText(getApplicationContext(), "Search button clicked", Toast.LENGTH_SHORT).show();
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) FriendsListActivity.this.getSystemService(Context.SEARCH_SERVICE);
if (item != null) {
searchView = (SearchView) item.getActionView();
}
if (searchView != null) {
searchView.setSearchableInfo(searchManager.getSearchableInfo(FriendsListActivity.this.getComponentName()));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Log.e("Query",query);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
AndroidManifest.xml
<activity
android:name=".activity.FriendsListActivity"
android:parentActivityName=".activity.WelcomeActivity">
<!-- To display the search view-->
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity android:name=".activity.SearchResultsActivity">
<intent-filter>
<action
android:name="android.intent.action.SEARCH"
android:launchMode="singleTop" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
Burada görebilirsiniz i aranabilir etkinlik adında SearchResultsActivity var. this eğiticisini takip ediyorum.
SearchResultsACtivity: Ben i, SearchResultsActivity zarar bulursanız i WhatsApp gibi arama yapmak nasıl uygulayabileceğiniz bana yardım çağrılmaz aramak çalışıyorum şeylerin yanlış here.When yapıyorum düşünüyorum
public class SearchResultsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Log.e("onCreate","in SerachActivity called");
handleIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
handleIntent(intent);
}
private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
Log.e("Query1",query);
//use the query to search your data somehow
}
}
}
?
Hiçbir zaman SearchResultsActivity'yi başlatmıyorsunuz? –
bunun için TextWatcher'ı da kullanabilirsiniz –
@MuratK. : Belgelere göre "Aranabilir bir etkinlik, uygulamanızda bir sorgu dizgisine dayalı arama yapan ve arama sonuçlarını sunan bir aktivitedir. Kullanıcı arama iletişim veya widget'ında bir arama gerçekleştirdiğinde, sistem aranabilir etkinliğinizi başlatır. ve ACTION_SEARCH eylemiyle bir Intent'te arama sorgusunu sunar.Aranabilirliğiniz, sorgunun amacının QUERY ekstraından alınmasını sağladıktan sonra verilerinizi arar ve sonuçları sunar. " –