package cn.eoe.app.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import cn.eoe.app.R;
import cn.eoe.app.adapter.BasePageAdapter;
import cn.eoe.app.biz.BaseDao;
import cn.eoe.app.biz.SearchDao;
import cn.eoe.app.entity.CategorysEntity;
import cn.eoe.app.ui.base.BaseFragmentActivity;
public class SearchActivity extends BaseFragmentActivity implements
OnClickListener {
private ImageView btnGohome;
private EditText edtSearch;
private ListView mListView;
private LinearLayout loadLayout;
private String mTag;
private InputMethodManager imm;
private ViewPager mViewPager;
private BasePageAdapter mBasePageAdapter;
private List<Object> categoryList;
private SearchDao searchDao;
private ImageView mWait;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);
Intent i = getIntent();
mTag = i.getStringExtra("tag");
initData();
initView();
initViewPager();
}
public void initData() {
searchDao = new SearchDao(this);
imm = (InputMethodManager) getApplicationContext().getSystemService(
Context.INPUT_METHOD_SERVICE);
}
public void initView() {
// txtEmpty = (TextView) findViewById(R.id.txt_empty);
btnGohome = (ImageView) findViewById(R.id.btn_gohome);
btnGohome.setOnClickListener(this);
edtSearch = (EditText) findViewById(R.id.edt_search);
mListView = (ListView) findViewById(R.id.list_view);
loadLayout = (LinearLayout) findViewById(R.id.view_loading);
loadLayout.setVisibility(View.GONE);
mViewPager = (ViewPager) findViewById(R.id.above_pager);
edtSearch.setHint("即将为您搜索 " + mTag);
edtSearch.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
imm.showSoftInput(v, 0);
} else {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
});
edtSearch.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
if (v.getTag() == null) {
v.setTag(1);
edtSearch.clearFocus();
String searchContent = edtSearch.getText().toString();
searchDao.setValue(mTag, searchContent);
new MyTask().execute(searchDao);
} else {
v.setTag(null);
}
return true;
}
return false;
}
});
mWait=(ImageView)findViewById(R.id.search_imageview_wait);
}
public void initViewPager() {
mBasePageAdapter = new BasePageAdapter(SearchActivity.this);
mViewPager.setAdapter(mBasePageAdapter);
}
public class MyTask extends AsyncTask<BaseDao, String, Map<String, Object>> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
mWait.setVisibility(View.GONE);
loadLayout.setVisibility(View.VISIBLE);
mViewPager.setVisibility(View.GONE);
mViewPager.removeAllViews();
mBasePageAdapter.Clear();
super.onPreExecute();
}
@Override
protected Map<String, Object> doInBackground(BaseDao... params) {
BaseDao dao = params[0];
List<CategorysEntity> categorys = new ArrayList<CategorysEntity>();
Map<String, Object> map = new HashMap<String, Object>();
if ((categoryList = searchDao.mapperJson()) != null) {
categorys = searchDao.getCategorys();
// map.put("tabs", categorys);
map.put("list", categoryList);
return map;
} else {
return null;
}
}
@Override
protected void onPostExecute(Map<String, Object> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
mBasePageAdapter.Clear();
mViewPager.removeAllViews();
loadLayout.setVisibility(View.GONE);
mViewPager.setVisibility(View.VISIBLE);
if (result == null) {
mBasePageAdapter.addNullFragment();
loadLayout.setVisibility(View.GONE);
// txtEmpty.setVisibility(View.VISIBLE);
return;
}
if (searchDao.getHasChild()) {
mBasePageAdapter.addFragment((List) result.get("list"));
loadLayout.setVisibility(View.GONE);
// txtEmpty.setVisibility(View.GONE);
} else {
mWait.setVisibility(View.VISIBLE);
}
mBasePageAdapter.notifyDataSetChanged();
mViewPager.setCurrentItem(0);
}
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btn_gohome:
finish();
break;
}
}
}