您的位置:首页 > 移动开发 > Android开发

具有自动提示功能的菜单(AutoCompleteTextView与数组)

2016-03-05 21:00 706 查看

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

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息