Android开发初体验
来源:互联网 发布:手机录像机软件 编辑:程序博客网 时间:2024/06/07 22:13
这几天由于项目的需要突击学习了一下安卓方面的东西,由于完全没接触过安卓,所以就在京东买了一本郭霖大神的《第一行代码》(第2版)参考学习,这本书很不错,对于Android零基础上手很快。
总结一下用到了哪些东西。
1.创建活动和布局
安卓开发以Activity为主体,就好像main方法一样,启动一个安卓app就是进入一个主Activity中去,’onCreate’方法来初始化一些组件,应用启动时需要的东西。
比如一些按钮,控件等等
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //按钮绑定事件 findViewById(R.id.testBtn).setOnClickListener(this); findViewById(R.id.showBtn).setOnClickListener(this); findViewById(R.id.loginBtn).setOnClickListener(this); findViewById(R.id.sendBtn).setOnClickListener(this); webView = (WebView) findViewById(R.id.web_view); webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { Log.e("alert", message); return super.onJsAlert(view, url, message, result); } }); webView.getSettings().setJavaScriptEnabled(true); //允许运行js webView.addJavascriptInterface(new JsInterface(),"androidMeth"); webView.loadUrl("file:///android_asset/index.html"); }
这里用到了WebView 控件,该控件是一个可以调用内置浏览器的东西,因为我这里需要在android里面调用JavaScript方法,所以用到了。
2.在Android中调用js中方法和在js中调用java方法
既然用到了,那就总结一下,在网上搜了好久。
这里是调用本地的js,html文件
1.首先在工程项目中新建一个 asserts文件夹(在main文件夹中),将html,js等放在这个文件夹中。
2.在项目下的 .iml文件中加入下面的代码(不是在最外面的.iml文件)
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
3.由于我的js文件都引用在index.html文件中,所以就只加这一个文件,这是本地的
webView.getSettings().setJavaScriptEnabled(true); //允许运行js webView.loadUrl("file:///android_asset/index.html");
4.调用js方法的语法如下(show()方法为js中的方法)
webView.loadUrl("javascript:show()");
5.如果还想获取js方法的返回值,有一个办法就是在js方法中再调用java的方法
1)首先声明一个普通的Java类
class JsInterface{ @JavascriptInterface public void getUrl(String result){ Log.e("getUrl", result); String url=result; } }
2)调用下面的方法,把刚才建的对象传进去,后面的字符串代表这个对象在js中的别名
webView.addJavascriptInterface(new JsInterface(),"androidMeth");
也就是说在js方法中,我们可以通过androidMeth
来代表这个Java对象
3)在js代码中调用
function show(){ var url="www.baidu.com"; window.androidMeth.getUrl(url);//调用Java代码将值传入 }
此时,在2)步的getUrl方法中,String url=result;
url就可以获取到值了。
3.网络通信
类似于Java习惯,在安卓中需要注意的是,不要在主线程中做一些耗时的事,因为主线程主要是用来交互的,所以这里新建了一个线程来发送和接受http请求
//todo 发送http请求 private void sendRequestWithHttpURLConnection(final String url){ new Thread(new Runnable() { @Override public void run() { HttpURLConnection connection=null; BufferedReader reader=null; try { URL u = new URL(url); connection = (HttpURLConnection) u.openConnection(); connection.setRequestMethod("POST"); connection.setConnectTimeout(8000); connection.setReadTimeout(8000); //todo 发送数据 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.writeUTF("pathid=1&carid=2&longitude=39.12&latitude=116.21"); InputStream in=connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb=new StringBuilder(); String line; while ((line = reader.readLine()) != null) { sb.append(line); } out.flush(); out.close(); showResult(sb.toString()); } catch (Exception e) { e.printStackTrace(); }finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if (connection != null) { connection.disconnect(); } } } }).start(); }
- Android开发初体验
- Android开发初体验
- Android开发初体验
- phonegap android开发初体验
- android蓝牙开发初体验
- phonegap android开发初体验
- Android usb开发初体验
- Android开发Sqlite数据库初体验
- Android开发之NDK初体验
- Android NDK开发(一)JNI初体验
- Android之NDK开发初体验
- 使用Kotlin开发Android应用初体验
- Android Kotlin 开发--初体验Demo
- Android使用kotlin开发初体验
- 使用Kotlin开发Android应用初体验
- 使用Kotlin开发Android应用初体验
- android开发 新体验
- Android串口开发初体验(windows开发环境)
- mtk,高通原生黑名单联系人无法拦截
- 网线断掉检测
- 桁架机器人
- 数据库 ER图
- WebService学习总结(二)——WebService相关概念介绍
- Android开发初体验
- 进程和线程的定义和区别
- EvenBus的使用,(详解)
- Intellij IDEA 中的 Debug 控制台/ Debug 控制台的 out 窗口不见了的解决办法
- Java JSON解析
- ORB_SLAM2再学习——单目
- ivado HLS和OpenCV
- JavaScript-day17-个人学习笔记
- pycharm当中,如何导入python2或者python3环境