具有自動提示功能的菜單(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()); |
|
|
|
|