使用EditText时你是否有想过要当你输入一些字母或文字得时候就可以弹出一些提示呢?
这时候我们就需要使用AutoCompeleteTextView来辅助我们了。
一,初级使用
1,首先我们先在 xml文件定义好 AutoCompeleteTextView控件:
layout_width:定义好控件宽度
layout_height:定义好控件高度
id:定义好控件的 id方便查找
<?xmlversion="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.oufenghua.autocompeletetextviewdemo.MainActivity">
<AutoCompleteTextView
android:id="@+id/actv"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_margin="10dp"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="20dp"
android:src="@android:drawable/ic_menu_search" />
</RelativeLayout>
2,我们再在Java文件中关联到我们定义好的 AutoCompeleteTextView 再定义好一个字符串数组用来存放我们准备要来提示的关键字,然后放到数组适配器并设置到AutoCompeleteTextView中去
importandroid.support.design.widget.FloatingActionButton;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ArrayAdapter;
importandroid.widget.AutoCompleteTextView;
public classMainActivity extends AppCompatActivity {
/**
* 初始化提示用关键字数组
*/
private String[] COUNTRIES = newString[]{"Belgium", "France", "Italy","Germany", "Spain", "Beginning"};
/**
* 自动补全输入框
*/
private AutoCompleteTextViewautoCompleteTextView;
/**
* 数组适配器
*/
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//新建数组适配器
adapter = newArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,COUNTRIES);
//初始化控件
autoCompleteTextView =(AutoCompleteTextView) findViewById(R.id.actv);
//设置控件
autoCompleteTextView.setAdapter(adapter);
}
}
这样就可以做到输入内容后会有提示列表:
示范:
2,当然,只有固定的提示语句是很没意思的,所以,如果我们想要保存下来你刚刚搜索过的关键字的话,我们可以这样做:
通过点击事件把输入的内容获取,然后传到adapter中然后再更新一下 adapter就可以有新添加的关键字了
importandroid.support.design.widget.FloatingActionButton;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ArrayAdapter;
importandroid.widget.AutoCompleteTextView;
publicclass MainActivity extends AppCompatActivity implements View.OnClickListener {
/**
* 提示用关键字数组
*/
private String[] COUNTRIES = newString[]{"Belgium", "France", "Italy","Germany", "Spain", "Beginning"};
/**
* 自动补全输入框
*/
private AutoCompleteTextViewautoCompleteTextView;
/**
* 浮动点击按钮
*/
private FloatingActionButtonfloatingActionButton;
/**
* 数组适配器
*/
private ArrayAdapter<String> adapter;
/**
* 输入的字符串
*/
private String input;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//新建数组适配器
adapter = newArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,COUNTRIES);
//初始化控件
autoCompleteTextView =(AutoCompleteTextView) findViewById(R.id.actv);
floatingActionButton =(FloatingActionButton) findViewById(R.id.fab);
//设置控件
floatingActionButton.setOnClickListener(this);
autoCompleteTextView.setAdapter(adapter);
}
/**
* 监听点击事件
* @param view 被点击的的view
*/
@Override
public void onClick(View view) {
//获取自动补全输入框的内容
input =autoCompleteTextView.getText().toString();
//往适配器中添加输入的
adapter.add(input);
//刷新适配器的数据变更
adapter.notifyDataSetChanged();
}
}
下面是示例:
但是这样操作一旦关app就没有作用了,所以需要数据库以及后台,这里就不展示了,思想大同小异