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; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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>() { @Override public void onSuccess(File t) { // TODO Auto-generated method stub textView.setText("File down Success"); } }); } catch (Exception e) { // TODO Auto-generated catch block e.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>() { @Override public void onSuccess(Object t) { // TODO Auto-generated method stub textView.setText((t == null) ? "null" : (String) t); } }); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.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>() { @Override public void onSuccess(Object t) { // TODO Auto-generated method stub if (textView == null) Toast.makeText(getApplicationContext(), "(textView==null)", 2000).show(); else textView.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>() { @Override public void onSuccess(Object t) { // TODO Auto-generated method stub textView.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 { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub boolean 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 block e.printStackTrace(); } // System.out.println("-------------value:"+ // item.getString()); // System.out.println("-------------inputSream:"+ // item.getInputStream()); } } catch (FileUploadException e) { e.printStackTrace(); } } response.getWriter().print("okok!"); } }
原文:http://blog.csdn.net/scboyhj__/article/details/43890923