日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

记在两周Android实训之后

發布時間:2025/3/16 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记在两周Android实训之后 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正月初十回校,十一開始實訓課程。要求是在兩周之后交出一個Android APP。

對于Android,我的印象就是跟java一樣,但是沒搞過。

第一周,java,從數據類型到講到servlet,中間講了集合、線程、IO、單例模式,總之是撈干的來。


第一周結束,也算是收獲頗豐,撿起了扔下兩年的代碼,因為是學習就放棄了使用框架的想法,自己試著用反射機制簡單的封裝了servlet。長時間不寫代碼的感受是,對于持有其他對象引用的這個事,經常會忘記初始化就拿來用了,報錯基本都是空指針異常。

第二周,Android。


其實怎么看都跟WEB類似,Android的前端跟WEB的前端并沒有太多區別。給組件一個id,在相應的activity中獲取組件,對組件進行監聽,獲取內容。其實Android的組件都很成熟了,那些看起來炫酷的東西,Android本身都已經封裝好了,拿來用就是了。

Android前端設計的時候跟WEB不同的是,受限于屏幕大小,我們需要把更多的事件放到同一個組件中。比如說一個搜索框,在WEB中我們可以用一個下拉框來控制搜索內容的類別,但在WEB中這并不適用,如果你在應用中見到搜索框加下拉選擇類型,這種軟件還是放棄吧,辣眼睛。合適的做法是你可以在搜索框下加入幾個大方美觀的標簽,搜索的同時獲取標簽內容。另一個就是你在響應搜索事件后,搜索多張表,浪費點時間,但卻簡化了用戶的操作。

另一個遇到的問題是Android studio 對于前端頁面報錯不明顯。如果你的布局里有多個組件,而你又不小心忘了寫oritentation,很不幸有些東西會顯示不出來。這個問題讓我誤以為我的Intent沒有把參數傳過來,折騰了好久(哭)。

對于APP的網絡連接,我們使的是老控件。

import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map;/*** Created by Administrator on 2018/3/9.*/public class NetworkUtil {public static final String BASE_URL = "http://192.168.3.69:8080/networkBack/";public static final String QUERY_PERSON = BASE_URL + "QueryAllServlet";public static final String PAGE_PERSON = BASE_URL + "PageQueryServlet";public static final String INSERT_PERSON = BASE_URL + "InsertPerServlet";public static JSONObject getJSONByURL(String urlStr) throws IOException, JSONException {return new JSONObject(getDataByURL(urlStr));}public static JSONArray getJSONArrByURL(String urlStr) throws IOException, JSONException {return new JSONArray(getDataByURL(urlStr));}public static String getDataByURL(String urlStr) throws IOException {//通過地址創建URL對象URL url = new URL(urlStr);//建立連接URLConnection conn = url.openConnection();//接收返回的數據流InputStream is = conn.getInputStream();//讀取返回的內容BufferedReader br = new BufferedReader(new InputStreamReader(is));StringBuffer buffer = new StringBuffer();String line = null;while ((line = br.readLine()) != null) {buffer.append(line);}br.close();return buffer.toString();}public static String postDataByUrl(String urlStr, Map<String, String> map) throws IOException {HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost(urlStr);List<NameValuePair> list = new ArrayList<>();Iterator<Map.Entry<String, String>> iter = map.entrySet().iterator();while(iter.hasNext()) {Map.Entry<String, String> entry = iter.next();NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue());list.add(pair);}post.setEntity(new UrlEncodedFormEntity(list));HttpResponse response = client.execute(post);return EntityUtils.toString(response.getEntity());} }

這里犯得另一個錯誤是在后臺返回數據時寫成out.println();

????????多了一個換行符,對返回結果進行字符串匹配時,一直不對,我差點就懷疑人生了。

結尾附上另外兩個封裝代碼(數據庫和servlet):

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List;public class DBUtil {private String url = "jdbc:mysql://localhost/xjtuse";private String user = "root";private String password = "root";Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//μ¥áD?£ê?private static final DBUtil dbutil = new DBUtil();private DBUtil(){}public static DBUtil getInstace(){return dbutil;}//??è?êy?Y?aá??ópublic Connection getConnection() {try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}//2é?ˉpublic ResultSet query(String sql, List<Object> params){try {ps = conn.prepareStatement(sql);if(params != null && params.size() > 0){for(int i = 0; i < params.size(); i++){ps.setObject(i + 1, params.get(i));}}rs = ps.executeQuery();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs;}//DT???üD?public void update(String sql, List<Object> params){try {ps = conn.prepareStatement(sql);if(params != null && params.size() > 0){for (int i = 0; i < params.size(); i++){ps.setObject(i + 1, params.get(i));}}ps.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//1?±?á??ópublic void close(){try {if(rs != null){rs.close();}if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class BasicServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");String methodname = request.getParameter("methodname");//??è?μ±?°ààμ?è?àà??Class clazz = this.getClass();try {//·′é???μ?·?·¨Method method = clazz.getMethod(methodname, HttpServletRequest.class, HttpServletResponse.class);//·′é?μ÷ó?String path = (String)method.invoke(this, request, response);if(path != null && !path.equals("")){request.getRequestDispatcher(path).forward(request, response);return;}} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }

總結

以上是生活随笔為你收集整理的记在两周Android实训之后的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费观看在线播放 | 91在线免费观看网站 | 国精产品一区一区三区在线 | 亚洲青春草 | 91国产在线免费观看 | 国产美女精品 | 日韩久久精品 | 亚洲国产精品成人综合在线 | 黄色小说网站在线观看 | 中文字幕亚洲国产 | xvideos成人免费视频 | 欧美一区二区三区久久妖精 | 久久99视频| 人妻一区二区三区在线 | 无码国产色欲xxxxx视频 | 青草视频免费看 | 欧美性生交xxxxx久久久缅北 | 涩涩视频在线播放 | xzjzjzjzjzj欧美大片 | 精品国产乱码久久久久久蜜臀 | 国内毛片毛片毛片 | 亚洲综合视频一区 | 国产 丝袜 欧美中文 另类 | 胸网站 | 激情伊人网 | 亚洲国产精品成人无久久精品 | 久久艹这里只有精品 | 国产男女猛烈无遮挡 | 新婚夫妇白天啪啪自拍 | 亚洲影院在线观看 | 99久久久国产精品无码性 | 色播av | 亚洲专区中文字幕 | www.在线| 18深夜在线观看免费视频 | 中文字幕在线免费观看 | 激情五月婷婷综合 | 日本一本在线 | 国产精品女主播 | 少妇性生活视频 | 色一情一乱一乱一区91av | 狠狠鲁狠狠干 | 国产免费一区视频观看免费 | 四季av一区二区凹凸精品 | 男人的天堂在线观看av | 国产做爰免费观看 | 一区二区高清在线 | 精品色综合 | 性色在线 | 国产精品12页| 国产高清av | 中文字幕亚洲日本 | 色眯眯视频 | 黄色a级片网站 | 九九热视频免费 | 性xxxx欧美 | 亚洲精品一区二区在线观看 | 日本免费在线视频 | 日韩亚洲第一页 | 国产真实乱 | 日韩手机在线观看 | 网站免费在线观看 | 日韩在线电影一区 | 99re6在线视频 | 久草高清视频 | 日韩资源在线 | 精品国产传媒 | 亚洲国产毛片aaaaa无费看 | 精品熟女一区二区 | 国产大片b站 | 亚洲精品国产无码 | 痴汉电车在线播放 | 无码成人一区二区 | 久久久久99人妻一区二区三区 | 国产激情图片 | 欧美一区二区视频 | 国产欧美高清 | 特级精品毛片免费观看 | jvid视频| 成人免费在线观看网站 | 人人妻人人玩人人澡人人爽 | av无毛| 色欲色香天天天综合网www | 国产一级做a爱片久久毛片a | 国产精品99久久免费黑人人妻 | 狠狠操天天射 | 成人性生交大片免费看 | 91在线超碰 | 草草影院第一页yycc.com | 男人操女人的免费视频 | 国语对白做受按摩的注意事项 | 色五婷婷 | 国产一级黄色电影 | 亚洲精品国产精品国自产观看浪潮 | 操你啦在线视频 | 91免费入口| 91看片黄| 一级特黄性色生活片 | 精品日本一区二区三区在线观看 |