/**============================================================ * 版权: 久其软件 版权所有 (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; } } }