转发请注明出处:
安卓猴的博客(http://sunjiajia.com)
安卓猴的微博(@安卓猴)


通过本节课可以学习到的内容:

  • Spinner的用法
  • AutoCompleteTextView的用法

实例代码:

运行效果参见本课程示例App:安卓猴Demos

github地址:https://github.com/opengit/MonkeyAndroid


Spinner的用法

Spinner,俗称下拉列表,它提供了一组固定的值或选项,允许用户从中选择一个作为默认的状态。

AutoCompleteTextView的用法

AutoCompleteTextView,自动完成文本框,用户在输入时给予补全提醒。

效果图

Spinner和AutoCompleteTextView
Spinner和AutoCompleteTextView

Activity的源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.sunjiajia.monkeyandroid;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Spinner;
/**
* Created by monkey on 1/3/16.
*/
public class SpinnerAutoCompleteTextViewActivity extends BaseActivity {
@Override public int giveViewResId() {
return R.layout.activity_spinner_autocompletetextview;
}
private Spinner mSpinnerCity;
private String[] mDatas;
private AutoCompleteTextView tvAc;
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intViews();
initData();
confingViews();
}
private void confingViews() {
setSpinner();
setAutoCompleteTextView();
}
private void setAutoCompleteTextView() {
ArrayAdapter<CharSequence> adapter03 =
ArrayAdapter.createFromResource(this, R.array.av_male, android.R.layout.simple_list_item_1);
tvAc.setAdapter(adapter03);
}
private void setSpinner() {
//通过适配器来进行动态的数据填充
// 第一种:
/* ArrayAdapter<String> adapter01 =
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, mDatas);
mSpinnerCity.setAdapter(adapter01);*/
ArrayAdapter<CharSequence> adapter02 = ArrayAdapter.createFromResource(this, R.array.city,
android.R.layout.simple_list_item_1);
mSpinnerCity.setAdapter(adapter02);
}
private void intViews() {
mSpinnerCity = (Spinner) findViewById(R.id.spinner_city);
tvAc = (AutoCompleteTextView) findViewById(R.id.tv_autocomplete);
}
protected void initData() {
mDatas = new String[] { "动态数据Spinner", "北京", "上海", "深圳", "广州", "洛杉矶", "纽约", "华盛顿" };
}
}

布局文件XML的源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<!--
android:entries="@array/av_male"
用来绑定静态的array数据。
-->
<Spinner
android:id="@+id/spinner_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/av_male"
/>
<Spinner
android:layout_marginTop="30dp"
android:id="@+id/spinner_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<!--
android:completionThreshold="1"
用来设置第几个字符开始提示;
-->
<AutoCompleteTextView
android:id="@+id/tv_autocomplete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="请输入侍寝的女优名字"
/>
</LinearLayout>

values/arrays.xml源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="av_male">
<item>静态数据Spinner</item>
<item>苍井空</item>
<item>苍小妹</item>
<item>苍二妹</item>
<item>朝桐光</item>
<item>朝小姐</item>
<item>朝美女</item>
<item>小泽玛利亚</item>
<item>小仓美女</item>
<item>西翔野</item>
<item>西门庆</item>
<item>孙静雅</item>
<item>孙悟空</item>
<item>波多野结衣</item>
<item>菠萝菠萝蜜</item>
</array>
<array name="city">
<item>动态填充数据2</item>
<item>北京</item>
<item>上海</item>
<item>深圳</item>
<item>广州</item>
<item>洛杉矶</item>
<item>纽约</item>
<item>华盛顿</item>
</array>
</resources>

下课

这一节课,我们主要学习了Spinner和AutoCompleteTextView,希望能够在实际中加以运用!

关于我

  • 微信公众号:Android奇想录(android_amazing)

扫描二维码关注公众号