本文主要记录的是输入时常用到的自动匹配输入,和保存密码部分的知识。最终要实现的是:当输入文字时,会从数据源中查找相匹配的内容,如果没找到,就把输入的数据添加进去。当我们选中保存密码时,退出程序再次打开时,会自动把账号和密码填充进来。效果图如下:
整体实现的大致思想就是:使用AutoCompleteTextView实现数据的自动匹配;使用安卓内嵌的SQLiteDatabase进行数据的存储;使用SharedPreferences实现密码的记录。在启动程序时,在Activity的onCreate()方法中首先获取用来存储密码的SharedPreferences文件,读取其中记录的CheckBox状态值,如果为选中状态,则把保存的账号和密码设置到输入框内,反之,不作为。当我们点击连接网络等按键时都会检查CheckBox的状态,如果是选中状态,则把状态,账号和密码都保存到SharedPreferences文件中。同时,判断数据库中是否含有输入的内容,没有则添加进去。
为此,首先要了解AutoCompleteTextView的用法。AutoCompleteTextView是安卓中能实现自动匹配的一个控件。其用法和其他控件没有多少不同,主要区别就是,它需要设置一个适配器,来提供数据源,大致流程如下:
nameET=(AutoCompleteTextView) findViewById(R.id.account);//获取一个对象。
//R.layout.item_drop是自己随便定义的一个布局,R.id.item是其中的TextView组件的ID,strLists是一个字符串列表
mAdapter=new ArrayAdapter<String>(this, R.layout.item_drop, R.id.item,strLists);
nameET.setAdapter(mAdapter);
其次,就是数据库,以及SharedPreferences应用方面的知识,这里就不做讲述了。仅通过代码来展示其中的逻辑。
Activit如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import com.an