編輯:關於Android編程
一、在JavaEE項目中搭建環境
1. 導入相關jar包
2. 搭建相關的包和類
3.類中的方法簡單實餡喎?/kf/yidong/wp/" target="_blank" class="keylink">WPC9wPgo8cD5Vc2VyOjwvcD4KyfnD99LUz8LK9NDUo6yyosq1z9bO3rLOubnU7Mb3us3T0LLOubnU7Mb3o6zS1LywuPfX1LXEZ2V0us1zZXS3vbeoCjxwPjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20140527/201405270929154.png" alt="\">
UserDao:
UserDaoImpl:
JsonServlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 來自於數據庫 UserDao daoImpl = new UserDaoImpl(); Listentities = daoImpl.findAll(); // 把List集合轉換成一個json的數據格式 JSONArray jsonArray = JSONArray.fromObject(entities); response.setContentType("application/json");// 響應類型 json的數據 response.getWriter().write(jsonArray.toString()); response.getWriter().close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
二、Android項目中的對服務器端返回JSON數據的處理
1. 導入jar包
3. 實現布局文件
4.MainActivity.java中的主要內容見如下詳細代碼:
package www.csdn.net.activity; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.JsonHttpResponseHandler; public class MainActivity extends Activity { private ListView lv_users; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_users = (ListView) findViewById(R.id.lv_users); initData();//M層 //initData本身在一個子線程中處理 } private void initData() { // 訪問服務器端 獲取json數據 // 創建客戶端對象 AsyncHttpClient client = new AsyncHttpClient(); String url = "http://172.16.237.227:8080/video/JsonServlet"; Toast.makeText(this, "發送請求到服務器", Toast.LENGTH_LONG).show(); client.get(url, new JsonHttpResponseHandler() { // 返回JSONArray對象 | JSONObject對象 @Override public void onSuccess(int statusCode, Header[] headers, JSONArray response) { super.onSuccess(statusCode, headers, response); if (statusCode == 200) { //存儲數組變量 Listobjects = new ArrayList<>(); for (int i = 0; i < response.length(); i++) { try { // 獲取具體的一個JSONObject對象 JSONObject obj = response.getJSONObject(i); objects.add(obj.getString("name")); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //C控制層主要就是對數據處理 ArrayAdapter adapter = new ArrayAdapter (MainActivity.this, android.R.layout.simple_list_item_1, objects); //設置顯示的內容 lv_users.setAdapter(adapter);// C空置 } } }); } }
5. 實現效果如下圖所示:
三、補充
1. JSONObject對象可以通過get("屬性名"),getString("屬性名"),getInt("屬性名")等這些方法,來獲取指定屬性名的屬性值。
例如:在此案例中可以通過System.out.println("序號:" + obj.getInt("id") + "姓名:"+ obj.getString("name") +"---密碼:"+ obj.getString("pass") +"---"+ obj.get("regDate"));來驗證一下結果。2. 出現的bug原因可能有:
Internet權限沒加,服務器沒啟動,訪問服務器路徑有錯,沒有獲取控件對象,設置顯示的內容應為lv_users.setAdapter()方法而不是setText()方法等。
ListView的下拉刷新很常見,很多開源的框架都能做到這個效果,當然也可以自己去實現。本篇案例是基於xlistview的。布局:<RelativeLayout x
對於技術類的博客,我們永遠追尋最新API腳步,在API22之前我們使用標題欄基本都是在ActionBarActivity的Activity中處理的,而API22之後,谷歌
新建工程,如圖步驟 下面給個小demo布局文件:
通知基本用法通知的必要屬性一個通知必須包含以下三項屬性:小圖標,對應 setSmallIcon()通知標題,對應 setContentTitle()詳細信息,對應 set