/**============================================================
* 版权: 久其软件 版权所有 (c)
* 包: com.jiuqi.njt.widget
* 修改记录:
* 日期 作者 内容
* =============================================================
* 2013-9-3 liyue
* ============================================================*/
package com.jiuqi.ui.widget;
import java.util.ArrayList;
import com.jqyd.uilib.R;
import com.jiuqi.ui.widget.SearchBar.onSearchListener;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewStub;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* <p>点击搜索控件后,转向的搜索界面</p>
*
* <p>Copyright: 版权所有 (c)<br>
* Company: 久其</p>
*
* @author liyue
* @version 2013-9-3
*/
public class SearchBarActivity extends Activity{
private XListView listview;
private SearchBar searchBar;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
doinit();
}
private void doinit(){
initParam();
initWidgets();
initListener();
initUI();
}
private void initParam(){
}
private void initWidgets(){
setContentView(R.layout.search_bar_sample_activity);
View searchStub = findViewById(R.id.searchBarStub);
searchBar = SearchBar.createSearchBarWithRightButton(searchStub);
searchBar.setOnSearchListener(new onSearchListener(){
@Override
public void onSearch(String key, View v){
docallback(key, v);
}
});
searchBar.getBtnRight().setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
SearchBarActivity.this.finish();
}
});
listview = (XListView) findViewById(R.id.listView);
listview.setPullRefreshEnable(false);
listview.setPullLoadEnable(false);
}
private void initListener(){
}
protected void docallback(String key, View v){
new MyAsync().execute(key);
}
private void initUI(){
}
@Override
protected void onDestroy(){
super.onDestroy();
// 输入法是否弹出
if(getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED){
//关闭输入法
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
private class MyAsync extends AsyncTask<String, Void, ArrayList<String>>{
@Override
protected void onPreExecute(){
searchBar.setProgressBarVisible(true);
listview.setAdapter(null);
}
@Override
protected ArrayList<String> doInBackground(String... params){
ArrayList<String> result = new ArrayList<String>();
try{
String key;
if(TextUtils.isEmpty(params[0])){
key = "Test";
}
else{
key = params[0];
}
Thread.sleep(3000);
for(int i = 1; i < 20; i++){
result.add(key + i);
}
}
catch(Exception e){
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(ArrayList<String> result){
searchBar.setProgressBarVisible(false);
listview.setAdapter(new MyListAdapter(result));
}
}
private class MyListAdapter extends BaseAdapter{
private ArrayList<String> data;
private LayoutInflater inflater ;
public MyListAdapter(ArrayList<String> data){
this.data = data;
inflater = LayoutInflater.from(SearchBarActivity.this);
}
@Override
public int getCount(){
return data.size();
}
@Override
public Object getItem(int position){
return data.get(position);
}
@Override
public long getItemId(int position){
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder = null;
if(convertView == null){
convertView = inflater.inflate(R.layout.listview_item, null);
holder = new ViewHolder();
holder.tvTitle = (TextView)convertView.findViewById(R.id.tvTitle);
holder.tvDate = (TextView)convertView.findViewById(R.id.tvDate);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}
String title = data.get(position);
holder.tvTitle.setText(title);
return convertView;
}
class ViewHolder {
public TextView tvTitle;
public TextView tvDate;
}
}
}