AutoCompleteTextView 自动提示的编辑框

package com.qf.day04_autocompletetextview;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity {

	private String[] data;

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

		// 1, 得到控件初始化
		AutoCompleteTextView autoView = (AutoCompleteTextView) findViewById(R.id.auto_id);

		// 2, 得到数据源
		data = new String[] { "android", "apple", "abc", "abcd", "c", "c++",
				"c#", "abcdef" };

		// 3, 定义适配器
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_spinner_item, data);

		// 4, 为控件设置适配器
		autoView.setAdapter(adapter);

		// 5, 设置监听器(文本改变监听器)
		autoView.addTextChangedListener(new TextWatcher() {

			/**
			 * 文本正在改变 CharSequence s : 文本变化后的内容 int start 被替换字符的起始下标 int before
			 * 被替换字符的数量 int count 替换进来新字符的数量
			 */
			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {

				Log.i("info", "onTextChanged == > s = " + s + "  , start = "
						+ start + "  ,  before = " + before + " , count="
						+ count);

			}

			/**
			 * 文本变化之前 CharSequence s 变化之前的文字 int start 被替换进来字符的起始下标 int count
			 * 被替换的字符数量 int after 替换进来新字符的数量
			 */
			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {

				Log.i("info", "beforeTextChanged == > S = " + s + " , start = "
						+ start + " , count = " + count + " , after = " + after);

			}

			/**
			 * 文本改变之后 Editable s 变化之后文本的内容
			 */
			@Override
			public void afterTextChanged(Editable s) {
				// TODO Auto-generated method stub
				Log.i("info", "afterTextChanged == > s " + s);
			}
		});

	}

}

demo:

package com.example.day4homework2;

import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private AutoCompleteTextView auto;
	Map<String, Object> map;
	String city[] = { "北京", "山东", "宁夏" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		auto = (AutoCompleteTextView) findViewById(R.id.au1);
		map = new HashMap<String, Object>();
		map.put("北京", new String[] { "海淀", "朝阳" });
		map.put("山东", new String[] { "淄博", "青岛" });
		map.put("宁夏", new String[] { "石嘴山", "银川" });
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				MainActivity.this, android.R.layout.simple_spinner_item, city);

		auto.setAdapter(adapter);
		// 为控件设置文本改变的监听器
		auto.addTextChangedListener(new TextWatcher() {

			@Override
			public void onTextChanged(CharSequence s, int start, int before,
					int count) {
				// TODO Auto-generated method stub

			}

			@Override
			public void beforeTextChanged(CharSequence s, int start, int count,
					int after) {
				// TODO Auto-generated method stub

			}

			@Override
			public void afterTextChanged(Editable s) {
				// TODO Auto-generated method stub
				if (s.toString().equals("北京")) {
					fangfa(s.toString());
				}
				if (s.toString().equals("山东")) {
					fangfa(s.toString());

				}
				if (s.toString().equals("宁夏")) {
					fangfa(s.toString());

				}

			}
		});

	}

	public void fangfa(String s) {
		StringBuffer buffer = new StringBuffer();
		String[] value = (String[]) map.get(s);
		for (String string : value) {
			buffer.append(string + " ");
		}
		Toast.makeText(MainActivity.this, buffer.toString(), Toast.LENGTH_SHORT)
				.show();
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值