Hallo Nikhil müssen Sie benutzerdefinierte Ansicht für Registerkarte verwenden, um den Zählwert auf Suchergebnisänderung mit Event-Bus zu setzen. über evet Bus Um zu wissen, reffer EventBus: Events for Android
search_tab_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:gravity="center"
android:background="@color/app_blue">
<!-- Menu Item Image -->
<TextView
android:id="@+id/tabTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/count"
android:text="Book"
android:textSize="12sp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingRight="8dp"
android:layout_centerVertical="true"
android:textColor="@color/white"
app:customTypeface="mayriad_pro_regular"/>
<TextView
android:id="@+id/count"
android:layout_width="18dp"
android:layout_height="18dp"
android:text="0"
android:gravity="center"
android:textSize="10sp"
android:background="@drawable/cart_circle"
android:textColor="@color/app_blue"
app:customTypeface="mayriad_pro_semi_bold"/>
</LinearLayout>
Declare Registerkarte veiws
tab1 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
tab2 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
tab3 = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.search_tab_layout, null);
In onCreateOptionMenu EventBus onCreate verwenden Ereignis auf Suche abzufeuern
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_search, menu);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
if (null != searchView) {
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getActivity().getComponentName()));
searchView.setIconifiedByDefault(false);
}
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
public boolean onQueryTextChange(String newText) {
// this is your adapter that will be filtered
EventBus.getDefault().post(new SearchViewFilterEvent(newText));
return true;
}
public boolean onQueryTextSubmit(String query) {
//Here u can get the value "query" which is entered in the search box.
return false;
}
};
searchView.setOnQueryTextListener(queryTextListener);
MenuItemCompat.setOnActionExpandListener(menu.getItem(0), new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
adapter.setIsHideWashAndFold(true);
tabLayout.removeTabAt(0);
adapter.notifyDataSetChanged();
llSpinner.setVisibility(View.GONE);
tabLayout.getTabAt(0).setCustomView(tab);
tabLayout.getTabAt(1).setCustomView(tab2);
tabLayout.getTabAt(2).setCustomView(tab3);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
adapter.setIsHideWashAndFold(false); adapter.notifyDataSetChanged();
llSpinner.setVisibility(View.VISIBLE);
initView();
return true;
}
});
new Handler().post(new Runnable() {
@Override
public void run() {
final View v = getActivity().findViewById(R.id.menu_search);
if (v != null) {
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
}
}
});
}
Vielen Dank. Es hat funktioniert. – Nikhil