package com.ntp.ui.course; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; import android.widget.ListView; import android.widget.TextView; import com.ntp.ui.R; import com.ntp.adapter.CoursevideoAdapter; import com.ntp.util.ConstantValue; import com.ntp.dao.SearchHistoryDao; import com.ntp.model.Course; import com.ntp.model.Coursevideo; import com.ntp.view.MyProgress; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.JsonHttpResponseHandler; import com.loopj.android.http.RequestParams; 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; /** * 课程搜索历史显示,悬浮activity */ public class SearchHistoryActivity extends Activity implements CoursevideoAdapter.Callback { private ListView searchHistoryList; private CoursevideoAdapter coursevideoAdapter;//和视频列表同用一个适配器,数据展示结构一样 private SearchHistoryDao searchHistoryDao; private TextView name; List<Coursevideo> list; private static AsyncHttpClient client = new AsyncHttpClient(); List<Course> courseList = new ArrayList<Course>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_history); searchHistoryList = (ListView) findViewById(R.id.searchHistoryList); searchHistoryDao = new SearchHistoryDao(getApplicationContext()); List<String> strList = searchHistoryDao.findAll(); list = new ArrayList<Coursevideo>(); for (int i = 0; i < strList.size(); i++) { list.add(new Coursevideo(strList.get(i),0+"",0+"",R.drawable.delete)); } coursevideoAdapter = new CoursevideoAdapter(list, getApplicationContext(), this); searchHistoryList.setAdapter(coursevideoAdapter); } /** * 回调接口方法 */ @Override public void click(View v) { switch (v.getId()) { case R.id.watch://删除这条搜索历史 int position = Integer.parseInt(v.getTag().toString()); Log.i("TAG", position + ""); String name = list.get(position).getName(); list.remove(position); searchHistoryDao.deleteByName(name); coursevideoAdapter = new CoursevideoAdapter(list, getApplicationContext(), this); searchHistoryList.setAdapter(coursevideoAdapter); coursevideoAdapter.notifyDataSetChanged(); break; case R.id.coursevideoName://根据这条搜索记录进行重新搜索 Intent intent = new Intent(getApplicationContext(), MyProgress.class); startActivity(intent); int posi = Integer.parseInt(v.getTag().toString()); String nameStr = list.get(posi).getName(); RequestParams params = new RequestParams(); params.put("name", nameStr);//键和后台参数接受字段一直 client.post(ConstantValue.PATH_COURSE_SEARCH, params, new JsonHttpResponseHandler() { public void onSuccess(int statusCode, Header[] headers, JSONObject response) { super.onSuccess(statusCode, headers, response); try { if (response != null) { JSONArray ja = response.getJSONArray("list"); for (int i = 0; i < ja.length(); i++) { JSONObject j = ja.getJSONObject(i); Course course = new Course(null, j.getString("code"), j.getString("name"), j.getJSONObject("coursetype").getString("type"), j.getJSONObject("user").getString("name")); courseList.add(course); } Bundle bundle = new Bundle(); bundle.putSerializable("list", (java.io.Serializable) list); setResult(RESULT_OK, new Intent().putExtras(bundle)); } else { setResult(RESULT_CANCELED); finish(); } } catch (JSONException e) { e.printStackTrace(); } } }); } } @Override protected void onDestroy() { super.onDestroy(); searchHistoryDao.close(); } /** * 点击屏幕其他地方,对话框消失 */ public boolean onTouchEvent(MotionEvent event) { finish(); return true; } /** * 重绘使本activity宽度占据全部手机屏幕 */ @Override public void onAttachedToWindow() { super.onAttachedToWindow(); //获取手机屏幕宽度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); //改变activity尺寸 View view = getWindow().getDecorView(); WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams(); lp.gravity = Gravity.TOP; lp.width = dm.widthPixels; getWindowManager().updateViewLayout(view, lp); } }