继续积累吧。

网络连接

  1. 在Android的应用中,需要进行网络连接的时候,需要首先设置网络的权限。
 // AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET"/>
  1. 进行网络访问,需要创建一个URL对象,并使用Http协议将其发送出去。构建一个URL对象可以借助AndroidUri对象。
    • base URL传入到URI对象中
    • 之后使用appendQueryParameter添加query的选项
    • 使用build方法,得到最终的URI对象
    • URI对象传入URL对象中,得到最终的URL对象
Uri uri = Uri.parse(FORECAST_BASE_URL).buildUpon()        .appendQueryParameter(QUERY_PARAM, locationQuery)        .appendQueryParameter(FORMAT_PARAM, format)        .appendQueryParameter(UNITS_PARAM, units)        .appendQueryParameter(DAYS_PARAM, Integer.toString(numDays))        .build();URL url = null;try {  url = new URL(uri.toString());} catch (MalformedURLException e) {  e.printStackTrace();}
  1. 进行网络访问的操作,必须要在子线程中进行,因为Android的主线程只负责页面的更新,相应用户的操作,需要在17ms内完成一个更新操作,如果一个操作时间过长,例如,网络操作,就会被认为是应用没有响应,会被Android强制关闭。
    这里就需要一个新的类AsyncTask。
    AsyncTask只有doInBackgroundpublicProgress方法是在新线程中执行,其他的方法还是在主线程中调用。
  1. 添加menu,在res文件夹下,添加一个menu文件夹,并添加menu的资源文件。所有的menu资源使用Java进行访问的时候,通过R.menu.xxx进行访问。
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">    <item            app:showAsAction="ifRoom"            android:id="@+id/action_refresh"            android:title="@string/refresh"/>menu>
  1. 添加menu资源以后,就需要将其放入到activity之中。需要重写onCreateOptionsMenu方法,这个方法返回一个bool值,用来控制menu是否展示在界面上。使用getMenuInflater().inflate(menu's id, menu)menu资源放到activity中。
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    // the resourse of menu is in R.menu    getMenuInflater().inflate(R.menu.forecast, menu);    return true;}
  1. 之后需要将menu的选择事件。通过传入的Itemid来确定当前的处理事件。
public boolean onOptionsItemSelected(MenuItem item) {    if(item.getItemId() == R.id.action_refresh){        mWeatherTextView.setText("");        loadWeatherData();        }    return super.onOptionsItemSelected(item);}

更多相关文章

  1. Android(安卓)面试题
  2. Android(安卓)SQLite使用详解和多线程并发访问
  3. [置顶] 安卓实现序列化之Parcelable接口
  4. Android(安卓)高手进阶教程(十三)之----Android(安卓)数据库SQLi
  5. Android界面绘制_canvas解析
  6. Drawable、Bitmap、Canvas和Paint的区别
  7. 内存泄露的调试
  8. Android(安卓)之 使用VideoView播放视频
  9. Android(安卓)Service与Activity之间通信的几种方式

随机推荐

  1. Android(安卓)文件格式
  2. Android的权限控制机制
  3. Android属性动画,从源码的角度分析
  4. android Service之四:传递复杂数据类型的
  5. 【android基础】之Android返回键处理(事
  6. Android(安卓)- GridView,自定义开关控件,
  7. eclipse下android的sdk配置问题
  8. Android中Activity组件详解
  9. Android(安卓)Private Libraries 和 Depe
  10. Android中的Shape美化