package com.handsomezhou.appsearch.fragment; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.TextView; import android.widget.Toast; import com.handsomezhou.appsearch.R; import com.handsomezhou.appsearch.adapter.AppInfoAdapter; import com.handsomezhou.appsearch.helper.AppInfoHelper; import com.handsomezhou.appsearch.model.AppInfo; import com.handsomezhou.appsearch.util.AppUtil; import com.handsomezhou.appsearch.util.ViewUtil; import com.handsomezhou.appsearch.view.SearchBox; import com.handsomezhou.appsearch.view.SearchBox.OnSearchBox; public class QwertySearchFragment extends BaseFragment implements OnSearchBox{ private static final String TAG="QwertySearchFragment"; private GridView mQwertySearchGv; private TextView mSearchResultPromptTv; private SearchBox mSearchBox; private AppInfoAdapter mAppInfoAdapter; @Override public void onResume() { refreshView(); super.onResume(); } @Override protected void initData() { setContext(getActivity()); mAppInfoAdapter = new AppInfoAdapter(getContext(), R.layout.app_info_grid_item, AppInfoHelper.getInstance() .getQwertySearchAppInfos()); } @Override protected View initView(LayoutInflater inflater, ViewGroup container) { View view = inflater.inflate(R.layout.fragment_qwerty_search, container, false); mQwertySearchGv=(GridView) view.findViewById(R.id.qwerty_search_grid_view); mQwertySearchGv.setAdapter(mAppInfoAdapter); mSearchResultPromptTv = (TextView) view .findViewById(R.id.search_result_prompt_text_view); mSearchBox=(SearchBox) view.findViewById(R.id.search_box); mSearchBox.setOnSearchBox(this); return view; } @Override protected void initListener() { mQwertySearchGv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { AppInfo appInfo=(AppInfo) parent.getItemAtPosition(position); AppUtil.startApp(getContext(), appInfo); } }); mQwertySearchGv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { AppInfo appInfo=(AppInfo) parent.getItemAtPosition(position); AppUtil.uninstallApp(getContext(), appInfo); return true; } }); } /*start: OnSearchBox*/ @Override public void onSearchTextChanged(String curCharacter) { search(curCharacter); refreshView(); } /*end: OnSearchBox*/ public void refreshView() { refreshQwertySearchGv(); } public void updateSearch(){ if(null==mSearchBox){ return; } search(mSearchBox.getSearchEtInput()); } private void refreshQwertySearchGv() { if (null == mQwertySearchGv) { return; } BaseAdapter baseAdapter = (BaseAdapter) mQwertySearchGv.getAdapter(); Log.i(TAG, "getCount"+baseAdapter.getCount()+""); if (null != baseAdapter) { baseAdapter.notifyDataSetChanged(); if (baseAdapter.getCount() > 0) { ViewUtil.showView(mQwertySearchGv); ViewUtil.hideView(mSearchResultPromptTv); } else { ViewUtil.hideView(mQwertySearchGv); ViewUtil.showView(mSearchResultPromptTv); } } } private void search(String keyword) { Log.i(TAG, "search=["+keyword+"]"); String curCharacter; if (null == keyword) { curCharacter = keyword; } else { curCharacter = keyword.trim(); } if (TextUtils.isEmpty(curCharacter)) { AppInfoHelper.getInstance().qwertySearch(null); } else { AppInfoHelper.getInstance().qwertySearch(curCharacter); } } }