展会信息港展会大全

android AutoCompleteTextView 与 MultiAutoCompleteTextView
来源:互联网   发布日期:2015-11-15 10:14:20   浏览:2939次  

导读:1、简介 在我们平常上网的时候经常会用到谷歌或百度,在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,非常方便。这种效果在Android中是 用AutoCompleteTextView实现的AutoCompleteTextView......

1、简介

在我们平常上网的时候经常会用到谷歌或百度,在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,非常方便。这种效果在Android中是 用AutoCompleteTextView实现的AutoCompleteTextView是一个可以编辑的文本view,当用户键入时,会自动显示完 成建议信息。

建议列表显示在下拉列表框中,可以选中某项代替编辑框里的内容。

当用户点击回车键时,或者什么也没有选中点击ENTER建时下拉列表会自动消失。

建议列表是从一个数据适配器获取的数据。

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.AdapterView.OnItemClickListener;

public class AutoActivity extends Activity

{

private AutoCompleteTextView autoCompleteTextView = null;

private final String[] Citys = new String[]

{

"Belgium", "France", "Italy", "Germany", "Spain", "Sppp", "Itaggg"

};

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

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

// 配置设配器

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(

AutoActivity.this,

android.R.layout.simple_dropdown_item_1line, Citys);

autoCompleteTextView.setAdapter(arrayAdapter);

autoCompleteTextView.setOnItemClickListener(new OnItemClickListener()

{

@Override

public void onItemClick(AdapterView<?> parent, View view,

int position, long id)

{

System.out.println(autoCompleteTextView.getText().toString());

}

});

}

}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<AutoCompleteTextView

android:id="@+id/AutoCompleteTextView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:completionThreshold="1"

/>

</LinearLayout>

补充:

completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。另,默认最多提示20条。

dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。

dropDownSelector:应该是设置自动提示的背景色之类的,没有尝试过,有待进一步考证。

dropDownWidth:设置自动提示列表的宽度。

public class MultiAutoCompleteTextViewActivity extends Activity

{

private MultiAutoCompleteTextView autoCom = null;;

private Button btnClear = null;

private String[] normalString = null;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

normalString = new String[]

{ "android", "android sxp", "sxp", "sxp wx" };

autoCom = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);

btnClear = (Button) findViewById(R.id.btn);

// simple_dropdown_item_1line

// 简单的一些样式,貌似是自定义的

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, normalString);

autoCom.setAdapter(adapter);

// setTokenizer(); // Sets the Tokenizer 标记生成器 that will be used to

// determine the relevant range of the text where the user is typing. //

// CommaTokenizer(): // 这个简易的组件可以用于一些列表中,这些列表包含被逗号以及一个或数个空格断开的项目。 //

// 不太理解,这个方法不加的话没法自动完成文本;添加的话又觉得是废话,列表当然以逗号分隔了

autoCom.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

btnClear.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View v)

{

autoCom.setText("");

}

});

}

}

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

<TextView

android:id="@+id/textView"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="请输入"

android:textSize="20px" ></TextView>

<MultiAutoCompleteTextView

android:id="@+id/multiAutoCompleteTextView"

android:layout_width="260px"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="" />

<Button

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:text="清除" ></Button>

</LinearLayout>

AutoCompleteTextView 与 MultiAutoCompleteTextView的区别:

AutoCompleteTextView 只匹配一次

MultiAutoCompleteTextView可以匹配多次

赞助本站

人工智能实验室

相关热词: MultiAutoCompleteTextView

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港