Android基础:AutoCompleteTextView

本文详细介绍了Android中AutoCompleteTextView的使用方法,包括基本配置、实现登录界面的用户名提示及自动填充密码功能,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AutoCompleteTextView

1 定义:

根据输入进行提示的控件

2 类的继承关系

这里写图片描述

3 简单使用:

3-1 布局: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"
    tools:context=".MainActivity" >

    <AutoCompleteTextView
        android:id="@+id/actv"
        android:layout_width="match_parent"
        android:completionThreshold="1"
        android:layout_height="wrap_content" />

</RelativeLayout>

completionThreshold:输入第几个值才开始进行提示。1:从输入第一个值开始提示,若不添加这个属性,则不提示。
Threshold:临界值。

3-2 MainActivity.java

package com.cqc.autocompleteview;

  import android.os.Bundle;
  import android.app.Activity;
  import android.widget.ArrayAdapter;
  import android.widget.AutoCompleteTextView;

  public class MainActivity extends Activity {

    private static final String[] texts = new String[] { "aa", "ab", "ac",
            "bb", "bc", "bd", "be" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.actv);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                MainActivity.this, android.R.layout.simple_dropdown_item_1line,
                texts);
        actv.setAdapter(adapter);

    }
  }

4 属性和方法

4-1 xml属性:

android:completionhint=""  ---提示的内容

4-2 方法:

setCompletionHint(charSequene): 设置提示内容

使用AutoCompleteTextView实现登陆界面提示用户名和自动填入密码

简介

登陆时根据输入的账号进行提示,输入账号完成后自动填入密码

效果图

代码

public class MainActivity extends Activity {

    private AutoCompleteTextView autoCompleteTextView;
    private EditText editText;
    private SharedPreferences sp;
    private String[] keys;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViews();

        initSP();

        initView();
    }

    private void initView() {
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, keys);
        autoCompleteTextView.setAdapter(adapter);

        //用户名输入完成后自动填入密码
        autoCompleteTextView.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {}

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            @Override
            public void afterTextChanged(Editable s) {
                String pwd = sp.getString(autoCompleteTextView.getText().toString().trim(), "");
                editText.setText(pwd);
            }
        });
    }

    //存放用户名和密码,和所有密码
    private void initSP() {
        //存放用户名和密码
        sp = getSharedPreferences("password", MODE_PRIVATE);
        sp.edit().putString("18100000001", "111111").putString("18100000002", "222222").putString("18100000003", "333333").putString("18100000004", "444444")
                .putString("18100000005", "555555").commit();
        //取出所有密码
        keys = new String[sp.getAll().size()];
        keys = sp.getAll().keySet().toArray(new String[0]);//new String[int ],int 无所谓
    }

    private void findViews() {
        autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
        editText = (EditText) findViewById(R.id.editText);
    }
}

源码:https://git.oschina.net/beifang2008/SavaNameAndPwd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值