AutocompleteTextView 简单使用day7.2
2016-01-16 00:00
381 查看
摘要: AutocompleteTextView
//功能:在AutocompleteTextView 里输入一个城市开头名的字
//自动检索有该字 的 城市
1、先布局界面 res/layout里有2个xml文件
activity_main.xml
代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<AutoCompleteTextView
android:id="@+id/autocompletetextview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="请输入城市名"
/>
</RelativeLayout>
-----------------------
citys_weather.xml
代码
<?xml version="1.0" encoding="UTF-8"?>
<citylist>
<p p_id = "01">
<pn>北京</pn>
<c c_id="0101"><cn>北京</cn>
<d d_id="101010100">北京</d>
<d d_id="101010200">海淀</d>
<d d_id="101010300">朝阳</d>
<d d_id="101010400">顺义</d>
<d d_id="101010500">怀柔</d>
<d d_id="101010600">通州</d>
<d d_id="101010700">昌平</d>
<d d_id="101010800">延庆</d>
<d d_id="101010900">丰台</d>
<d d_id="101011000">石景山</d>
<d d_id="101011100">大兴</d>
<d d_id="101011200">房山</d>
<d d_id="101011300">密云</d>
<d d_id="101011400">门头沟</d>
<d d_id="101011500">平谷</d>
</c>
</p>
</citylist>
--------------------------
2、在MainActivity 里实现功能
代码
public class MainActivity extends Activity {
private AutoCompleteTextView auto;
private ArrayAdapter<String> c_adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1、获取res/layout里面的xml文件名字
XmlPullParser parser = getResources().getXml(R.layout.citys_weather);
auto = (AutoCompleteTextView) this.findViewById(R.id.autocompletetextview);
//2、通过pull解析 把citys_weather.xml文件解析完后返回结果保存在list集合中
List<String> city_list = City_data(parser);
//3、new一个ArrayAdapter适配器 -- 把集合里的数据 丢到 适配器里
c_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,city_list);
//4、把适配器(数据)绑定到AutoCompleteTextView里
auto.setAdapter(c_adapter);
}
//pull解析
private List<String> City_data(XmlPullParser parser) {
List<String> c_list = new ArrayList<String>();
try {
int type = parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT){
switch(type){
case XmlPullParser.START_TAG:
if("d".equals(parser.getName())){
c_list.add(parser.nextText());
}
break;
}
type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c_list;
}
}
//功能:在AutocompleteTextView 里输入一个城市开头名的字
//自动检索有该字 的 城市
1、先布局界面 res/layout里有2个xml文件
activity_main.xml
代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<AutoCompleteTextView
android:id="@+id/autocompletetextview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="请输入城市名"
/>
</RelativeLayout>
-----------------------
citys_weather.xml
代码
<?xml version="1.0" encoding="UTF-8"?>
<citylist>
<p p_id = "01">
<pn>北京</pn>
<c c_id="0101"><cn>北京</cn>
<d d_id="101010100">北京</d>
<d d_id="101010200">海淀</d>
<d d_id="101010300">朝阳</d>
<d d_id="101010400">顺义</d>
<d d_id="101010500">怀柔</d>
<d d_id="101010600">通州</d>
<d d_id="101010700">昌平</d>
<d d_id="101010800">延庆</d>
<d d_id="101010900">丰台</d>
<d d_id="101011000">石景山</d>
<d d_id="101011100">大兴</d>
<d d_id="101011200">房山</d>
<d d_id="101011300">密云</d>
<d d_id="101011400">门头沟</d>
<d d_id="101011500">平谷</d>
</c>
</p>
</citylist>
--------------------------
2、在MainActivity 里实现功能
代码
public class MainActivity extends Activity {
private AutoCompleteTextView auto;
private ArrayAdapter<String> c_adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1、获取res/layout里面的xml文件名字
XmlPullParser parser = getResources().getXml(R.layout.citys_weather);
auto = (AutoCompleteTextView) this.findViewById(R.id.autocompletetextview);
//2、通过pull解析 把citys_weather.xml文件解析完后返回结果保存在list集合中
List<String> city_list = City_data(parser);
//3、new一个ArrayAdapter适配器 -- 把集合里的数据 丢到 适配器里
c_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,city_list);
//4、把适配器(数据)绑定到AutoCompleteTextView里
auto.setAdapter(c_adapter);
}
//pull解析
private List<String> City_data(XmlPullParser parser) {
List<String> c_list = new ArrayList<String>();
try {
int type = parser.getEventType();
while(type != XmlPullParser.END_DOCUMENT){
switch(type){
case XmlPullParser.START_TAG:
if("d".equals(parser.getName())){
c_list.add(parser.nextText());
}
break;
}
type = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c_list;
}
}
相关文章推荐
- Android中AutoCompleteTextView与MultiAutoCompleteTextView的用法
- Android中EditText和AutoCompleteTextView设置文字选中颜色方法
- AutoCompleteTextView组件的功能和用法
- android 如何实现登陆界面的记住密码功能
- Android:控件AutoCompleteTextView 自动提示
- 自学Android之Spinner和AutoCompleteTextView
- 轻量级SharedPreferences的存储方式
- AutoCompleteTextView使用探索
- AutoCompleteTextView详细解说
- Android学习第四天————AutoCompleteTextView自填充文本框
- 关于AutoCompleteTextView实现前几个历史提示
- 【控件篇】AutoCompleteTextView 简单实用案例代码
- Android开发适配器系列:AutoCompleteTextView和MultiAutoCompleteTextView
- Android用户界面 UI组件--自动提示输入框 AutoCompleteTextView和MultiAutoCompleteTextView
- android AutoCompleteTextView 自定义BaseAdapter
- android学习--AutoCompleTextView的使用
- AutoCompleteTextView和MultiAutoCompleteTextView
- AutoCompleteTextView和MultiAutoCompleteTextView使用详解
- 使用AutoCompleteTextView与SharedPreferences实现自动提示历史数据
- android学习:自动提示AutoCompleteTextView的使用