• 安卓学习第11课——AutoCompleteTextView


    。。。在百度上搜了这么一段。理解了ArrayAdapter的三个参数的用途

    1. 这个小例子是要显示一个数组,我们就用ArrayAdapter,数组适配器,数据的数据类型<>是String类型的,数据的数据类型还可以是其他的包括对象类型的

    2. ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(ArrayListDemo.this, android.R.layout.simple_list_item_1,adapterData);

    这段代码是创建一个数组适配器的代码,里面有三个参数,第一个参数是上下文,就是当前的Activity, 第二个参数是android sdk中自己内置的一个布局,它里面只有一个TextView,这个参数是表明我们数组中每一条数据的布局是这个view,就是将每一条数据都显示在这个 view上面;第三个参数就是我们要显示的数据。listView会根据这三个参数,遍历adapterData里面的每一条数据,读出一条,显示到第二 个参数对应的布局中,这样就形成了我们看到的listView.

    AdapterView功能
    一个Adapter对象作为一个AdapterView和View底层数据之间的桥,提供对data Items的存取,同时负责针对每个Data如何渲染到对应的View中。

    貌似懂了Adapter是干啥用的。。。感觉就是讲数组或是list里的数据转化为视图。。。这就容易懂了。。。

    下面上代码。。就是自动完成文本框

    <LinearLayout 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" 
        android:orientation="vertical">
    <!-- 定义一个自动完成文本框,指定输入一个字符后进行提示 -->
    <AutoCompleteTextView 
        android:id="@+id/auto"
         android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:completionHint="请选择您喜欢的书籍"
        android:dropDownHorizontalOffset="10sp"
        android:completionThreshold="1"
        
        />
    <!-- 定义一个MultiAutoCompleteTextView -->
    <MultiAutoCompleteTextView 
        android:id="@+id/mauto"
          android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:completionThreshold="1"
        />
    </LinearLayout>
    package com.example.autocompletetv;
    
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.MultiAutoCompleteTextView;
    
    public class MainActivity extends Activity {
    
        AutoCompleteTextView actv;
        MultiAutoCompleteTextView mauto;
        //定义一个字符数组作为提示文本
        String[] books=new String[]{
                "java讲义",
                "ajax讲义",
                "XML讲义",
                "android讲义"
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建一个ArrayAdapter,封装数组
            ArrayAdapter<String> aa=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, books);
            actv=(AutoCompleteTextView) findViewById(R.id.auto);
            actv.setAdapter(aa);
            mauto=(MultiAutoCompleteTextView) findViewById(R.id.mauto);
            mauto.setAdapter(aa);
            //为MultiAutoCompleteTextView设置分隔符
            mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
        }    
    }
  • 相关阅读:
    vue项目报错
    vue3.x版本安装element-ui、axios及echarts图表插件
    vue3.x版本安装vue-cli建项目
    vue-cli2.x版本安装vue-cli建项目
    vue项目报错:Unexpected tab character (no-tabs)
    dede不同栏目调用不同banner图的方法
    dede 友情链接显示不全解决方法
    dede上传文件乱码问题解决
    修改文本框中提示文字
    解决Hbuilder打包的apk文件按手机返回键直接退出软件
  • 原文地址:https://www.cnblogs.com/Yvettey-me/p/3918083.html
Copyright © 2020-2023  润新知