天气项目·SearchCityCodeActivity

含一个AutoCompleteTextView和一个imagView。textView可以根据输入提示城市名字。ImageView用于返回主页面,并传递城市代码给MainActiviy。

界面

一、变量

HashMap用于匹配城市代码和城市名字

private AutoCompleteTextView searchCityCodeAutoCompleteTextView;
private ImageView searchFinishImageView;
private HashMap<String, String> cityNameKeyCityNameValueHashMap;
private Handler readXMLFinishHandler;

二、Handler

sendMessage()中编写了adapter适配器方法。***setAutoCompleteTextViewAdapter() *** 用set 获取所有城市名称的数组,并把把citySet中的数据放到String数组中。

readXMLFinishHandler = new Handler(){
        public void handleMessage(Message msg) {
            setAutoCompleteTextViewAdapter();
        };
        private void setAutoCompleteTextViewAdapter() {
            Set<String> cityNameSet = cityNameKeyCityNameValueHashMap.keySet();
            String[] cityNames = new String[cityNameSet.size()];
            cityNameSet.toArray(cityNames);
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    SearchCityCodeActivity.this, android.R.layout.simple_list_item_1,
                    cityNames);
            searchCityCodeAutoCompleteTextView.setAdapter(adapter);//设置适配器
            searchCityCodeAutoCompleteTextView.setThreshold(1);//指定从第几个显示提示
        };
    };

三、OnCreate()方法

findViews();
setLisener();
getCityCodeFromXML();

四、setLisener();

  • searchFinishImageView

先异常处理,如果得到的字符串为空,则显示提示。
String cityName = searchCityCodeAutoCompleteTextView.getText().toString().trim();
if (TextUtils.isEmpty(cityName)) {
searchCityCodeAutoCompleteTextView.setError("请输入城市名称");
return;
}//把城市名作为键,去hashmap里取值
String cityCodeString = cityNameKeyCityNameValueHashMap.get(cityName);
if (TextUtils.isEmpty(cityCodeString)) {
searchCityCodeAutoCompleteTextView.setError("没有此城市的信息");
return;
}
int cityCode = Integer.valueOf(cityCodeString);
setResult(cityCode);
finish();
}//cityCode 有值,把cityCode转化为Int型。返回给mainActivity。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,350评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,932评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,404评论 19 139
  • Google Android Templates 缘由:从eclipse时代到“死丢丢”时代,一直存在一个我未曾深...
    Clone丶记忆阅读 8,838评论 4 17
  • 今日数学~5小时 专业课~4小时10分钟 英语~30分钟加单词 政治~40分钟 共~10小时20分钟 早中晚都可以...
    童雪阅读 1,898评论 0 0