具有自动提示功能的菜单(AutoCompleteTextView与数组)
新建一个继承Activity类的AutoCompleteTextViewActivity,并设置布局文件为:autocompletetextview.xml。
在布局文件中直接添加一个AutoCompleteTextView组件和一个Button组件。
<AutoCompleteTextView android:id="@+id/autocompletetextview_actv01" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<Button android:id="@+id/autocompletetextview_btn" style="@android:style/Widget.Button.Inset" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/add01" /> |
而后在Activity代码中获取这个组件。并设置一个ArrayAdapter适配器。
package lyx.feng.second;
......
public class AutoCompleteTextViewActivity extends Activity { private AutoCompleteTextView actv = null; private List<String> lists = new ArrayList<String>(); private Button btn = null; private ArrayAdapter<String> adapter = null;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.autocompletetextview); this.actv = (AutoCompleteTextView) super .findViewById(R.id.autocompletetextview_actv01); this.btn = (Button) super.findViewById(R.id.autocompletetextview_btn); for (int i = 'A'; i < 'Z'; i++) { for (int j = 'A'; j < 'Z'; j++) {
lists.add(String.valueOf((char) i) + String.valueOf((char) j) + "");
} }
this.adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, this.lists); this.actv.setAdapter(adapter);
this.btn.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) { String temp = actv.getText().toString().trim(); for (int i = 0; i < actv.getAdapter().getCount(); i++) { if (temp.equals(actv.getAdapter().getItem(i))) { Toast.makeText(AutoCompleteTextViewActivity.this, "数据已存在!", Toast.LENGTH_SHORT).show(); return; } } adapter.add(temp); adapter.notifyDataSetChanged(); for (int i = 0; i < lists.size(); i++) { System.out.print(lists.get(i) + ","); } } }); } }
|
也可以使用MultiAutoCompleteTextView组件,在布局文件中添加:
<MultiAutoCompleteTextView android:id="@+id/autocompletetextview_mactv01" android:layout_width="fill_parent" android:layout_height="wrap_content" /> |
在代码中获取MultiAutoCompleteTextView组件后:
this.mactv.setAdapter(adapter); this.mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); |
|
|
|
|