Android之AutoCompleteTextView控件使用

Adapter的数据源可能来自数组(手工输入),可能来自XML文件,可能来自数据库,可能来自网络。这些数据首先填充到适配器,适配器有ArrayAdapter,BaseAdapter,CursorAdapter,HeaderViewListAdapter,ListAdapter,ResourceCursorAdapter,SimpleAdapter,SimpleCursorAdapter,SpinnerAdapter,WrapperListAdapter匹配各种数据源

第一种来自数组



    

    


package com.example.android_autocompletetextview;

import java.util.ArrayList;
import java.util.List;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends ActionBarActivity {
	private AutoCompleteTextView autoCompleteTextView;
	private ArrayAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		autoCompleteTextView = (AutoCompleteTextView) this
				.findViewById(R.id.autotxt);
		adapter = new ArrayAdapter(this,
				android.R.layout.simple_expandable_list_item_1,
				getDataResSource());
		autoCompleteTextView.setAdapter(adapter);// 将适配器的内容放到AutoCompleteTextView中
	}

	// 数据源
	public List getDataResSource() {
		List list = new ArrayList();
		list.add("lily");
		list.add("zhangpeng");
		list.add("lilei");
		list.add("zhangsan");
		list.add("wangwu");
		list.add("zhangji");
		list.add("nini");
		list.add("tata");
		return list;
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}


第二种来自XML文件

要在string.xml文件中定义数组




    android_AutoCompleteTextView
    Hello world!
    Settings

    
        lily
        zhangpeng
        lilei
        zhangsan
        wangwu
        zhangji
        nini
        tata
    


package com.example.android_autocompletetextview;

import java.util.ArrayList;
import java.util.List;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends ActionBarActivity {
	private AutoCompleteTextView autoCompleteTextView;
	private ArrayAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		autoCompleteTextView = (AutoCompleteTextView) this
				.findViewById(R.id.autotxt);
		String[] names_array=getResources().getStringArray(R.array.names_array);
		adapter=new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, names_array);
		autoCompleteTextView.setAdapter(adapter);
	}


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}



你可能感兴趣的:(Android)