我的毕设涉及的东西

    xiaoxiao2026-04-04  7

    项目结构

    分析

    adapter相关:

    以活动模块的listview当参考

    import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.os.Handler; import android.text.style.ClickableSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.stgl.R; import com.example.stgl.bean.HuoDong; import com.example.stgl.bean.PlunInfo; public class HdAdapter extends BaseAdapter { private List<HuoDong> list; private LayoutInflater inflater; //private static LayoutInflater inflater = null; public HdAdapter(Context context,List<HuoDong> duanZiInfos) { inflater = LayoutInflater.from(context); this.list = duanZiInfos; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.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.item_hd, null); holder = new ViewHolder(); holder.text_title = (TextView) convertView.findViewById(R.id.txt_htitle); holder.text_huodong = (TextView) convertView.findViewById(R.id.txt_hword); holder.text_clue = (TextView) convertView.findViewById(R.id.hd_clue); holder.text_time = (TextView) convertView.findViewById(R.id.hd_time); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text_title.setText(list.get(position).getHtitle().toString()); holder.text_huodong.setText(list.get(position).getHword().toString()); holder.text_clue.setText(list.get(position).getOfclue().toString()); holder.text_time.setText(list.get(position).getHtime().toString()); return convertView; } class ViewHolder { private TextView text_title; private TextView text_huodong; private TextView text_clue; private TextView text_time; } } bean省略,json解析省略

    网络数据请求和接收返回数据方式

    import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.Map; public class HttpUtils { //public static String URL = "http://192.168.1.102:8080/STGLserver/login"; /*      * Function  :   发送Post请求到服务器      * Param     :   请求体内容,encode编码格式        */     public static String submitPostData(Map<String, String> params, String encode,String ul) {                  byte[] data = getRequestData(params, encode).toString().getBytes();//获得请求体         try {                     URL url = new URL(ul);             HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();             httpURLConnection.setConnectTimeout(3000);        //设置连接超时时间             httpURLConnection.setDoInput(true);                  //打开输入流,以便从服务器获取数据             httpURLConnection.setDoOutput(true);                 //打开输出流,以便向服务器提交数据             httpURLConnection.setRequestMethod("POST");   //设置以Post方式提交数据             httpURLConnection.setUseCaches(false);               //使用Post方式不能使用缓存             //设置请求体的类型是文本类型             httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");             //设置请求体的长度             httpURLConnection.setRequestProperty("Content-Length", String.valueOf(data.length));             //获得输出流,向服务器写入数据             OutputStream outputStream = httpURLConnection.getOutputStream();             outputStream.write(data);                          int response = httpURLConnection.getResponseCode();            //获得服务器的响应码             if(response == HttpURLConnection.HTTP_OK) {                 InputStream inptStream = httpURLConnection.getInputStream();                 return dealResponseResult(inptStream);                     //处理服务器的响应结果             }         } catch (IOException e) {             e.printStackTrace();         }         return "";     }          /*      * Function  :   封装请求体信息      * Param     :   请求体内容,encode编码格式           */     public static StringBuffer getRequestData(Map<String, String> params, String encode) {         StringBuffer stringBuffer = new StringBuffer();        //存储封装好的请求体信息         try {             for(Map.Entry<String, String> entry : params.entrySet()) {                 stringBuffer.append(entry.getKey())                             .append("=")                             .append(URLEncoder.encode(entry.getValue(), encode))                             .append("&");             }             stringBuffer.deleteCharAt(stringBuffer.length() - 1);    //删除最后的一个"&"         } catch (Exception e) {             e.printStackTrace();         }         return stringBuffer;     }     /*      * Function  :   处理服务器的响应结果(将输入流转化成字符串)      * Param     :   服务器的响应输入流      */     public static String dealResponseResult(InputStream inputStream) {         String resultData = null;      //存储处理结果         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();         byte[] data = new byte[1024];         int len = 0;         try {             while((len = inputStream.read(data)) != -1) {                 byteArrayOutputStream.write(data, 0, len);             }         } catch (IOException e) {             e.printStackTrace();         }         resultData = new String(byteArrayOutputStream.toByteArray());             return resultData;     }      }

    SharedPreferences 的使用

    SharedPreferences sp = getSharedPreferences("usertext",Activity.MODE_PRIVATE); Editor ed = sp.edit(); ed.putString("hid",Integer.toString(hid)); //ed.putString("rid", Integer.toString(rid)); ed.putString("hname", hname); ed.commit();

    activity处理数据之类相关的东西

    // Runnable实现       Runnable mRunnable = new Runnable() {          @Override          public void run() {                              try {                      Thread.sleep(1000);// 暂停2秒再发送消息                                      getData();                                    } catch (InterruptedException e) {                      e.printStackTrace();                  }             // }          }      };  public void getData() { Map<String,String> map = new HashMap<String,String>(); map.put("school", school); String aa = HttpUtils.submitPostData(map, "utf-8",UrlUtil.url_hdong); Log.e(TAG, "-------------------------"+aa); List<HuoDong> hdong = HdongUtil .huodong(aa); // android多线程规定:子线程中不可以更改UI // 从系统的消息池中拿消息,节省资源 Message msg = Message.obtain(); msg.obj = hdong; msg.what = 2; handler_hd.sendMessage(msg); } Handler handler_hd = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case 2: @SuppressWarnings("unchecked") List<HuoDong> hdong = (List<HuoDong>) msg.obj; contentListView.setAdapter(new HdAdapter(HDongActivity.this, hdong)); break; } }; }; class HdAsyncTask extends AsyncTask<String, Void, List<HuoDong>> { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); progressbar.setVisibility(View.VISIBLE); } @Override protected List<HuoDong> doInBackground(String... arg) { // TODO Auto-generated method stub String url = arg[0]; Map<String,String> map = new HashMap<String,String>(); map.put("school", school); String aa = HttpUtils.submitPostData(map, "utf-8",url); List<HuoDong> hdong = HdongUtil .huodong(aa); return hdong; } @Override protected void onPostExecute(List<HuoDong> result) { // TODO Auto-generated method stub super.onPostExecute(result); progressbar.setVisibility(View.GONE); contentListView.setAdapter(new HdAdapter(HDongActivity.this, result)); } }

    写的很乱,主要是反省一下,看起来这东西真的太简单了,竟然花了一个多月,弱

    转载请注明原文地址: https://ju.6miu.com/read-1308496.html
    最新回复(0)