【Android實戰】Afinal架構的使用大全案例

來源:互聯網
上載者:User

標籤:android   架構   afinal   網路   通訊   

Afinal這個超級強大架構,可以滿足下面功能,並且基本覆蓋了手機應用中的核心部分

資料庫(幾句話就能實現增刪改查)

註解 (省去findById和setOnclickListener)

網路通訊(get請求 / post請求 / 檔案上傳 / 檔案下載)

圖片擷取(一句話解決)


下面是實現的例子,並且放上伺服器的代碼:

public class MainAct extends FinalActivity {@ViewInject(id = R.id.aBt, click = "dbClick")//實現註解Button abButton;@ViewInject(id = R.id.getBt, click = "getClick")Button getButton;@ViewInject(id = R.id.postBt, click = "postClick")Button postButton;@ViewInject(id = R.id.tv)TextView textView;@ViewInject(id = R.id.fileBt, click = "fileClick")Button fileButton;@ViewInject(id = R.id.fileBt2, click = "fileClick2")Button fileButton2;@ViewInject(id = R.id.picBt, click = "picClick")Button picButton;@ViewInject(id = R.id.img)ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.afinallay);}public void picClick(View v) {Toast.makeText(getApplicationContext(), "in", 2000).show();FinalBitmap finalBitmap = FinalBitmap.create(this);finalBitmap.display(imageView,"http://e.hiphotos.baidu.com/image/pic/item/b999a9014c086e06d1925b1300087bf40ad1cbb4.jpg");}public void fileClick2(View v) {//檔案下載FinalHttp finalHttp = new FinalHttp();AjaxParams ajaxParams = new AjaxParams();try {HttpHandler<File> handler = finalHttp.download("http://192.168.191.1:8080/androidtest/a.doc",Environment.getExternalStorageDirectory() + "/im.doc", true,new AjaxCallBack<File>() {@Overridepublic void onSuccess(File t) {// TODO Auto-generated method stubtextView.setText("File down Success");}});} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void fileClick(View v) {//檔案上傳FinalHttp finalHttp = new FinalHttp();AjaxParams ajaxParams = new AjaxParams();try {ajaxParams.put("file",new File(Environment.getExternalStorageDirectory()+ "/n.jpg"));finalHttp.post("http://192.168.191.1:8080/androidtest/test3",ajaxParams, new AjaxCallBack<Object>() {@Overridepublic void onSuccess(Object t) {// TODO Auto-generated method stubtextView.setText((t == null) ? "null" : (String) t);}});} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void getClick(View v) {    //get請求FinalHttp finalHttp = new FinalHttp();AjaxParams params = new AjaxParams();params.put("id", "1");params.put("name", "duerGet");params.put("age", "521");finalHttp.get("http://192.168.191.1:8080/androidtest/test2", params,new AjaxCallBack<Object>() {@Overridepublic void onSuccess(Object t) {// TODO Auto-generated method stubif (textView == null)Toast.makeText(getApplicationContext(),"(textView==null)", 2000).show();elsetextView.setText((t == null) ? "null" : (String) t);}});}public void postClick(View v) {    //post請求FinalHttp finalHttp = new FinalHttp();AjaxParams params = new AjaxParams();params.put("name", "duerPost");params.put("pass", "125");finalHttp.post("http://192.168.191.1:8080/androidtest/test2", params,new AjaxCallBack<Object>() {@Overridepublic void onSuccess(Object t) {// TODO Auto-generated method stubtextView.setText((t == null) ? "null" : (String) t);}});}public void dbClick(View v) {//建立資料庫 在bean前加@Table(name="tablename")實現自訂表格名Toast.makeText(getApplicationContext(), "in", 2000).show();FinalDb finalDb = FinalDb.create(this, "UserDB");UserBean bean1 = new UserBean();bean1.setAge("12");bean1.setName("duzi");finalDb.save(bean1);UserBean bean2 = new UserBean();bean2.setAge("12");bean2.setName("duzi");finalDb.save(bean2);}}

伺服器上傳接收代碼:

public class FileUpload extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubboolean isUpload = ServletFileUpload.isMultipartContent(request);if (isUpload) {DiskFileItemFactory factory = new DiskFileItemFactory();factory.setSizeThreshold(10);factory.setRepository(new File("E:\\upload"));ServletFileUpload upload = new ServletFileUpload(factory);upload.setSizeMax(10);ServletFileUpload sfu = new ServletFileUpload(factory);try {List<FileItem> DiskFileItems = sfu.parseRequest(request);for (FileItem item : DiskFileItems) {System.out.println("-------------key:"+ item.getFieldName());System.out.println(item.getName());File myFile=new File("E:\\upload\\"+item.getName());try {item.write(myFile);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}// System.out.println("-------------value:"+// item.getString());// System.out.println("-------------inputSream:"+// item.getInputStream());}} catch (FileUploadException e) {e.printStackTrace();}}response.getWriter().print("okok!");}}



【Android實戰】Afinal架構的使用大全案例

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.