Android学习之酷欧天气

这个项目…具体内容我就不说了…

因为有《第一行代码》第二版的人应该都比较了解…

但是第二版太老了,用的还是老版的Android Studio,很多东西都过时了…新的第三版用的是kotlin编写的。

之前因为懒,一直没想着去写这个项目。但是找工作,面试官说我的经验太少了,所以今天跟书上重新编写了一遍。熟悉一下相关架构和主流框架。

具体遇到的困难有如下几点:

  1. 一个activity转跳到另一个activity一定要!!!记得在AndroidManifest申明一下。
  2. 点击到具体省份的城市时,直接闪退。
    百度说是网络权限问题:

直接在AndroidManifest申明这个

    <uses-permission android:name="android.permission.INTERNET"/>

还是报错

需要在res->新建Directory->新建xml文件
输入

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

还需要在AndroidManifest的application中添加

 android:networkSecurityConfig="@xml/network_security_config"

问题完美解决。

3.打包Apk出错

记得在文件后缀名加上jks
列如这样
C:\Users\21907\AndroidStudioProjects\MyCoolWeather2.jks
不然会提示没有权限访问。

还要把V1和V2 两个都要勾上

4.有些依赖包太老了,记得自己在网上百度最新的。

最后附上项目地址:

https://github.com/MWX13145202/CoolWeather

希望能对大家有所帮助~

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Android天气预报实验报告模板 public class SetCityActivity extends Activity { //定义的一个自动定位的列表 private ListView gpsView; //定义的一个省份可伸缩性的列表 private ExpandableListView provinceList; //定义的用于过滤的文本输入框 private TextView filterText; //定义的一个记录城市码的SharedPreferences文件名 public static final String CITY_CODE_FILE="city_code"; //城市的编码 private String[][] cityCodes; //省份 private String[] groups; //对应的城市 private String[][] childs; //自定义的伸缩列表适配器 private MyListAdapter adapter; //记录应用程序widget的ID private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.set_city); gpsView = (ListView)findViewById(R.id.gps_view); provinceList= (ExpandableListView)findViewById(R.id.provinceList); //设置自动定位的适配器 gpsView.setAdapter(new GPSListAdapter(SetCityActivity.this)); //==============================GPS================================= //当单击自动定位时 gpsView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView localeCity = (TextView)view.findViewById(R.id.locateCityText); localeCity.setText("正在定位..."); final LocateHandler handler = new LocateHandler(localeCity); //添加一个线程来处理定位 new Thread(){ public void run() { Map<Integer, String> cityMap= getLocationCityInfo(); //记录匹配的城市的索引 int provinceIndex = -1; int cityIndex = -1; //传给处理类的数据封装对象 Bundle bundle = new Bundle(); if(cityMap!=null) { //得到图家名 String country = cityMap.get(LocationXMLParser.COUNTRYNAME); //只匹配中国地区的天气 if(country!=null&&country.equals("中国")){ //得到省 String province = cityMap.get(LocationXMLParser.ADMINISTRATIVEAREANAME); //得到市 String city = cityMap.get(LocationXMLParser.LOCALITYNAME); //得到区县 String towns = cityMap.get(LocationXMLParser.DEPENDENTLOCALITYNAME); Log.i("GPS", "============"+province+"."+city+"."+towns+"=============="); //将GPS定位的城市与提供能查天气城市进行匹配 StringBuilder matchCity = new StringBuilder(city); matchCity.append("."); matchCity.append(towns); //找到省份 for(int i=0; i<groups.length; i++) { if(groups[i].equals(province)) { provinceIndex = i; break; } }
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值