package com.jasonchen.microlang.activitys; import android.app.SearchManager; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.widget.SearchView; import android.view.Menu; import com.jasonchen.microlang.R; import com.jasonchen.microlang.debug.AppLogger; import com.jasonchen.microlang.fragments.SearchStatusFragment; import com.jasonchen.microlang.fragments.SearchUserFragment; import com.jasonchen.microlang.gallery.ViewPagerFixed; import com.jasonchen.microlang.settings.SettingUtility; import com.jasonchen.microlang.swipeback.app.SwipeBackActivity; import com.jasonchen.microlang.utils.ViewUtility; import com.jasonchen.microlang.view.SlidingTabLayout; import com.jasonchen.microlang.view.SlidingTabStrip; /** * jasonchen * 2015/04/17 */ public class SearchActivity extends SwipeBackActivity { private String token; private SlidingTabLayout tab; private ViewPagerFixed pager; private SearchStatusFragment statusFragment; private SearchUserFragment userFragment; public static Intent newIntent(Context context, String token) { Intent intent = new Intent(context, SearchActivity.class); intent.putExtra("token", token); return intent; } @Override public void onCreate(Bundle savedInstanceState) { mLayout = R.layout.activity_search; super.onCreate(savedInstanceState); initView(); } private void initView() { getSupportActionBar().setTitle(""); if (getIntent() != null) { token = getIntent().getStringExtra("token"); } if (Build.VERSION.SDK_INT >= 21) { mToolbar.setElevation(0f); } tab = ViewUtility.findViewById(this, R.id.tab); pager = ViewUtility.findViewById(this, R.id.pager); statusFragment = SearchStatusFragment.newInstance(token); userFragment = SearchUserFragment.newInstance(token); pager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) { @Override public int getCount() { return 2; } @Override public android.support.v4.app.Fragment getItem(int position) { switch (position) { case 1: return statusFragment; case 0: return userFragment; default: return null; } } @Override public String getPageTitle(int position) { switch (position) { case 1: return "微博"; case 0: return "用户"; default: return ""; } } }); tab.setDistributeEvenly(true); tab.setViewPager(pager); final int color = SettingUtility.getIsNightTheme() ? getResources().getColor(R.color.light_gray) : getResources().getColor(R.color.white); tab.setCustomTabColorizer(new SlidingTabStrip.SimpleTabColorizer() { @Override public int getIndicatorColor(int position) { return color; } @Override public int getSelectedTitleColor(int position) { return color; } }); tab.notifyIndicatorColorChanged(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_activity_search, menu); initSearchView(menu); return super.onCreateOptionsMenu(menu); } private void initSearchView(Menu menu) { SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { int item = pager.getCurrentItem(); if(item == 0){ userFragment.search(query); }else{ statusFragment.search(query); } return true; } @Override public boolean onQueryTextChange(String newText) { return false; } }); } public static interface Searcher { public void search(String q); } }