《Monkey Android》第15课Spinner和AutoCompleteTextView

2019-01-29 10:04:51 浏览数 (1)

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

  • Spinner的用法
  • AutoCompleteTextView的用法

实例代码:

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

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


Spinner的用法

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

AutoCompleteTextView的用法

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

效果图

Activity的源码

代码语言:javascript复制
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的源码

代码语言:javascript复制
<?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源码

代码语言:javascript复制
<?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,希望能够在实际中加以运用!

0 人点赞