Android开发初体验
2017-11-06 19:36
375 查看
这几天由于项目的需要突击学习了一下安卓方面的东西,由于完全没接触过安卓,所以就在京东买了一本郭霖大神的《第一行代码》(第2版)参考学习,这本书很不错,对于Android零基础上手很快。
总结一下用到了哪些东西。
比如一些按钮,控件等等
这里用到了WebView 控件,该控件是一个可以调用内置浏览器的东西,因为我这里需要在android里面调用JavaScript方法,所以用到了。
这里是调用本地的js,html文件
1.首先在工程项目中新建一个 asserts文件夹(在main文件夹中),将html,js等放在这个文件夹中。
2.在项目下的 .iml文件中加入下面的代码(不是在最外面的.iml文件)
3.由于我的js文件都引用在index.html文件中,所以就只加这一个文件,这是本地的
4.调用js方法的语法如下(show()方法为js中的方法)
5.如果还想获取js方法的返回值,有一个办法就是在js方法中再调用java的方法
1)首先声明一个普通的Java类
2)调用下面的方法,把刚才建的对象传进去,后面的字符串代表这个对象在js中的别名
也就是说在js方法中,我们可以通过
3)在js代码中调用
此时,在2)步的getUrl方法中,
总结一下用到了哪些东西。
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 in Mono开发初体验之DataBase
- phonegap android开发初体验
- 使用Kotlin开发Android应用初体验
- unity3d android开发初体验——远程安装调试篇
- Android开发相关配置初体验
- Android开发初体验之百度地图开发(2)
- Kotlin 为何能成为 Android 官方支持开发语言及Kotlin开发Android应用初体验
- Android插件化开发之OpenAtlas初体验
- Android使用kotlin开发初体验
- Android开发——四大组件Service初体验
- Android插件化开发之OpenAtlas初体验
- Android开发-RecyclerView-AndroidStudio(一)初体验对比ListView
- 第三博、Android第三方开发工具之微信分享初体验(一)、注册与应用创建
- 使用Kotlin开发Android应用初体验
- Android开发初体验 - 体质指数BMI.Calc
- Android开发初体验之face++人脸识别加静默拍照
- 使用Kotlin开发Android应用的初体验
- 【Android开发经验】Android Studio1.0正式版初体验——常用功能使用指南
- Android程序员学PHP开发(29)-ThinkPHP5.0(1)初体验-PhpStorm
- Android开发初体验兼AVD错误的解决方案