package com.ntp.ui.course; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.ntp.ui.R; import com.ntp.adapter.CourseAdapter; import com.ntp.util.ConstantValue; import com.ntp.dao.SearchHistoryDao; import com.ntp.model.Course; import com.ntp.util.NetworkStateUtil; import com.ntp.view.MyProgress; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.JsonHttpResponseHandler; import com.loopj.android.http.RequestParams; import com.nostra13.universalimageloader.core.ImageLoader; import org.apache.http.Header; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; /** * 搜索课程 */ public class SearchCourseActivity extends Activity implements View.OnClickListener, View.OnKeyListener, AdapterView.OnItemClickListener { private ImageView back;//返回 private EditText search; private SearchHistoryDao searchHistoryDao; private CourseAdapter courseAdapter; private ListView listView; private TextView tip; List<Course> list; private static final int REQUEST = 1;//请求码 private static final int REQUEST_PROGRESS = 2;//请求码 private static AsyncHttpClient client = new AsyncHttpClient(); private ImageLoader imageLoader;//Universal Image Loader加载图片类 private static final String TAG = "SearchCourseActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_course); back = (ImageView) findViewById(R.id.back); search = (EditText) findViewById(R.id.search); back.setOnClickListener(this); search.setOnKeyListener(this); listView = (ListView) findViewById(R.id.history); tip = (TextView) findViewById(R.id.no_search_tip); imageLoader = ImageLoader.getInstance(); list = new ArrayList<Course>(); searchHistoryDao = new SearchHistoryDao(getApplicationContext()); courseAdapter = new CourseAdapter(list, getApplicationContext()); listView.setAdapter(courseAdapter); listView.setOnItemClickListener(this); // Intent intent=new Intent(getApplicationContext(),SearchHistoryActivity.class); // startActivity(intent); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.back://返回 finish(); break; } } @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER) { if (search.getText().toString().equals("")) {//没有输入 Toast.makeText(getApplicationContext(), "请输入课程名称", Toast.LENGTH_SHORT).show(); return false; } if (!NetworkStateUtil.isNetworkConnected(getApplicationContext())) { Toast.makeText(getApplicationContext(), "当前网络不可用", Toast.LENGTH_SHORT).show(); return false; } Intent intent = new Intent(getApplicationContext(), MyProgress.class); startActivityForResult(intent, REQUEST_PROGRESS); RequestParams params = new RequestParams(); params.put("name", search.getText().toString());//键和后台参数接受字段一直 client.post(ConstantValue.PATH_COURSE_SEARCH, params, new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); try { if (response != null) { list.clear(); JSONArray ja = response.getJSONArray("list"); if (ja.length() == 0) { Toast.makeText(getApplicationContext(), "没有搜索到相关课程", Toast.LENGTH_SHORT).show(); finishActivity(REQUEST_PROGRESS); return; } for (int i = 0; i < ja.length(); i++) { JSONObject j = ja.getJSONObject(i); Course course = new Course(j.getString("code"), j.getString("name"),j.getString("image").equals("null")?"":j.getString("image"),j.getJSONObject("coursetype").getString("type"), j.getJSONObject("user").getString("name")); list.add(course); } searchHistoryDao.save(search.getText().toString());//保存搜索历史 courseAdapter = new CourseAdapter(list, getApplicationContext()); listView.setVisibility(View.VISIBLE);//设置listView可见 tip.setVisibility(View.GONE); courseAdapter.notifyDataSetChanged(); finishActivity(REQUEST_PROGRESS); } else { Toast.makeText(getApplicationContext(), "没有搜索到相关课程", Toast.LENGTH_SHORT).show(); finishActivity(REQUEST_PROGRESS); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { super.onFailure(statusCode, headers, throwable, errorResponse); Log.i(TAG, throwable.toString()); Toast.makeText(getApplicationContext(), "加载失败", Toast.LENGTH_SHORT).show(); } }); } return false; } //启动的子activity结果处理 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST) { if (resultCode == RESULT_OK) {//如果用户利用搜索历史搜索课程,如果搜索成功 list = (List<Course>) data.getExtras().getSerializable("list"); courseAdapter = new CourseAdapter(list, getApplicationContext()); listView.setAdapter(courseAdapter); } else if (resultCode == RESULT_CANCELED) { Toast.makeText(getApplicationContext(), "没有搜索到相关课程", Toast.LENGTH_SHORT).show(); } } } @Override protected void onDestroy() { super.onDestroy(); searchHistoryDao.close(); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(getApplicationContext(), CourseDetailActivity.class); TextView text = (TextView) view.findViewById(R.id.code); TextView textView = (TextView) view.findViewById(R.id.courseName); String code = (String) text.getText(); String name = (String) textView.getText(); Bundle bundle = new Bundle(); bundle.putString("code", code); bundle.putString("name", name); intent.putExtras(bundle); startActivity(intent); } }