预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

Similar documents
主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

RecyclerView and CardVew

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

Microsoft Word - 第4章 3D相册.doc

Android Fragment

0511-Android程式之GPS應用_專題週記4

Android + NFC

Android Service

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png

Dynamic Layout in Android

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

ContextMenu

新・解きながら学ぶJava

Microsoft Word 杨超-spinner实现省市县的三级联动.docx

Microsoft Word - 第3章.doc

Microsoft Word - 02.目錄.doc

Android 开发教程

Microsoft Word - 01.DOC

Lecture01_Android介绍

Microsoft Word - Android 7.x.doc

ShareText

Chapter 10

Database_001

Lecture01_Android介绍

Android + WebService


<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<android.support.v7.widget.recyclerview android:layout_width="0dp" android:layout_height="0dp" android:layout_marginbottom

PowerPoint 簡報

建模与图形思考

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

幻灯片 1

Android 编程基础 Android 开发教程 & 笔记 1

Microsoft Word - AEL CH05.doc

實作SQLiteOpenHelper類別

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Android Android Android SDK iv

untitled

建立Android新專案

Microsoft PowerPoint - 05.Android 介面元件-RelativeLayout、Button、TextVeiw、EditText

「西醫基層總額支付委員會《第28次委員會議紀錄

Microsoft Word - 第3章 Activity.doc

03 开发入门.key

_banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanneradview.gender_male); _bannera

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

第 2 節 介面佈局檔 第 1 項 說明 第 2 項 原始碼 第 3 節 主程式開發 第 1 項 主程式 - 基本設定 第 2 項 主程式 - 產生亂數 第 3 項 主程式 - 數字靠邊 數字加總 第 4 節 加入手

Microsoft Word - 第5章.doc

目 錄 一 ANDROID 開發系統需求 作業系統 開發工具... 1 二 安裝 ANDROID 開發工具 安裝 JDK 使用 APT-GET 安裝 使用套件管理程式安裝... 9 三 ANDROID 程式撰寫... 1

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

Android 基礎教學

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

JavaIO.PDF

EJB-Programming-4-cn.doc

<4D F736F F F696E74202D20B5DAD2BBBDB2A3BA416E64726F6964D3A6D3C3BFAAB7A2B5E4D0CDB0B8C0FDB7D6CEF6A1AAD6F7C1F76D7033B2A5B7C5C6F7A3A

Microsoft PowerPoint - 07.Android 介面元件-TableLayout、Toast、AlertDialog

Microsoft Word - 第3章.doc

建立Android新專案

Java

投影片 1

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

Microsoft Word - ch04三校.doc

教育部補助資訊軟體人才培育先導計畫 100 年度課程發展專案計畫 實驗課程名稱 : IPC(Inter-Process Communication) 開發教師 : 張晉源老師 開發學生 : 林政揚 學校系所 : 樹德科技大學資訊工程學系

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

Microsoft Word - GoF-ch02-8-hook-ok.doc

javaexample-02.pdf

untitled

Flume-ng与Mysql整合开发

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

Java講義

小应用 Magic8

Transcription:

EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

(3) 在 SelectCity.java 中编写 2 个 HashMap, 用于存放名字到城市编码还有名 字到拼音的映射 为了通过城市名称返回 MainActivity.java 的城市代码 (4) 在 SelectCity.java 中, 为 ListView 设置适配器 (5) 通过 ArrayAdpter 的 getfilter() 方法来实现搜索功能

(6) 在 OnClick 方法中通过 Intent 传递城市代码 (7) 运行安卓虚拟机, 发现无法输入中文 我们可以通过下载搜狗输入法到虚拟机中解决, 但是需要 X86 版本 在本机下载好 apk 安装包后, 直接拖动到虚拟机内即可完成安装 然后设置为默认输入法即可 搜狗输入 X86 版较为难找 百度网盘如下 :https://pan.baidu.com/s/1kai2y9e2r9ijxagginq1qq

3. 参考资料 (1)https://blog.csdn.net/lone1ycode/article/details/79558021 (2)https://www.jb51.net/article/109480.htm (3)https://blog.csdn.net/qq_20082961/article/details/52504400 4. 源代码 : (1)Select_city.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/city_title" android:layout_width="fill_parent" android:layout_height="45.0dip" android:background="#ffcd2626"> <TextView android:id="@+id/title_name" android:layout_width="fill_parent" android:layout_height="fill_parent"

android:gravity="center" android:text=" 当前城市 : 北京 " android:textcolor="#ffffffff" android:textsize="20.0dip" /> <ImageView android:id="@+id/title_back" android:layout_width="45.0dip" android:layout_height="45.0dip" android:layout_alignparentleft="true" android:layout_centervertical="true" android:src="@drawable/base_action_bar_back_normal" /> <ImageView android:layout_width="1.0dip" android:layout_height="40dip" android:layout_centervertical="true" android:layout_gravity="center" android:layout_torightof="@id/title_back" android:background="#a71717" android:gravity="center" /> </RelativeLayout> <LinearLayout android:background="@drawable/love" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@+id/city_title"> <ListView android:id="@+id/list_view" android:choicemode="singlechoice" android:dividerheight="2px" android:layout_width="fill_parent" android:layout_height="wrap_content"> </ListView> </LinearLayout> <EditText android:id="@+id/search_edit" android:layout_width="fill_parent" android:layout_height="55dp"

android:layout_alignparentbottom="true" android:layout_alignparentend="true" android:background="@drawable/contact_search_box_edittext_keyword_backgr ound" android:drawableleft="@drawable/magnifying_glass" android:drawablepadding="10.0dip" android:hint=" 搜索全国城市 ( 中文 )" android:imeoptions="actionsearch" android:paddingbottom="14.0dp" android:paddingleft="15.0dp" android:paddingright="30.0dp" android:paddingtop="15.0dp" android:singleline="true" android:textcolor="#ff000000" android:textcolorhint="#ffcccccc" /> </RelativeLayout> (2)SelectCity.java package com.example.zouyu.miniweather; import com.example.zouyu.app.myapplication; import com.example.zouyu.bean.city; import android.app.activity; import android.content.intent; import android.content.searchrecentsuggestionsprovider; import android.os.bundle; import android.support.annotation.nullable; import android.text.editable; import android.text.textwatcher; import android.util.log; import android.view.view; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.edittext; import android.widget.imageview; import android.widget.listview; import android.widget.textview; import android.widget.toast; import java.util.arraylist;

import java.util.hashmap; import java.util.list; import java.util.map; public class SelectCity extends Activity implements View.OnClickListener { // 监听按钮 private ImageView mbackbtn; private TextView mtestbtn; // 搜索栏和 ListView private ListView listview = null;// 声名 listview 对象, 用于绑定 select_city 布局文件中的 ListView private TextView cityselected = null; // 声名 TextView 对象, 用于绑定 select_city 布局文件中顶部栏的显示内容 private List<City> listcity = MyApplication.getInstance().getCityList(); private int listsize = listcity.size(); // 建立 listcity 长度的 String[] 数组, 用于存储要在 ListView 中展示的内容 private String[] city = new String[listSize]; private ArrayList<String> msearchresult = new ArrayList <>(); // 搜索结果 private Map<String,String> nametocode = new HashMap <>();// 城市名到编码 private Map<String,String> nametopinyin = new HashMap <>(); // 城市名到拼音 // 搜索功能 private EditText msearch; String returncode; protected void oncreate(@nullable Bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.select_city); // onclick 方法要在这里写绑定监听事件 mbackbtn = (ImageView) findviewbyid(r.id.title_back); mbackbtn.setonclicklistener(this); mtestbtn = (TextView) findviewbyid(r.id.title_name);

mtestbtn.setonclicklistener(this); // 实现 ListView 对数组的展示 // listview = new ListView(this); // listview.setadapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,getData())); // setcontentview(listview); cityselected = (TextView) findviewbyid(r.id.title_name); Log.i("City", listcity.get(1).getcity()); for (int i = 0; i < listsize; i++) { city[i] = listcity.get(i).getcity(); Log.d("City", city[i]); // 建立映射 String strname; String strnamepinyin; String strcode; for(city city1:listcity){ strcode = city1.getnumber(); strname = city1.getcity(); strnamepinyin = city1.getfirstpy(); nametocode.put(strname,strcode); nametopinyin.put(strname,strnamepinyin); msearchresult.add(strname); final ArrayAdapter<String> arrayadapter = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_single_choice, msearchresult); listview = findviewbyid(r.id.list_view); listview.setadapter(arrayadapter); // 设置适配器 listview.setonitemclicklistener(new AdapterView.OnItemClickListener() { public void onitemclick(adapterview <?> adapterview, View view, int i, long l) { String returncityname = msearchresult.get(i); Toast.makeText(SelectCity.this, " 你已选择 :" + returncityname, Toast.LENGTH_SHORT).show(); // cityselected.settext(" 当前城市 :" + city[i]); returncode = nametocode.get(returncityname);

); Log.d("returncode",returnCode); cityselected.settext(" 当前城市 :" + returncityname); msearch = (EditText)findViewById(R.id.search_edit); msearch.addtextchangedlistener(new TextWatcher() { public void beforetextchanged(charsequence s, int start, int count, int after) { public void ontextchanged(charsequence s, int start, int before, int count) { arrayadapter.getfilter().filter(s); public void aftertextchanged(editable s) { ); private List<String> getdata() { List<String> data = new ArrayList<String>(); data.add(" 测试数据 1"); data.add(" 测试数据 2"); data.add(" 测试数据 3"); return data; public void onclick(view v) { if (v.getid() == R.id.title_back) { Log.d("myWeather", " 我点击了返回界面 "); int position = listview.getcheckeditemposition(); String select_citycode = listcity.get(position).getnumber(); Intent i = new Intent(); i.putextra("citycode",returncode );

setresult(result_ok, i); finish(); if (v.getid() == R.id.title_name) { Log.d("myWeather", " 我是北京 ");