安卓关于输入提示后缀选择的注册邮箱项小例子

来源:互联网 发布:300天last单词社交网络 编辑:程序博客网 时间:2024/05/01 07:25

本来想找一个简化输入的注册工具包,找半天可能是关键字不对吧,导致没找到心里很恼火,所以自己写了个,这只是个小例子,我没有面向对象来写,因为还没头绪完成业务逻辑判断,后期我会完善成工具类,我也是初学者,希望可以帮助大家,也希望大手们能帮我一起完善这个小玩意。

package com.example.search;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ExpandableListView;
import android.widget.MultiAutoCompleteTextView;


public class MainActivity extends Activity {
AutoCompleteTextView actv;
MultiAutoCompleteTextView mauto;
ArrayAdapter<String> aa;
String[] books = new String[] { "@qq.com", "@sohu.com", "@163.com",
"@126.com" };
String[] book1 = new String[] { "@qq.com", "@sohu.com", "@163.com",
"@126.com" };
String input = null;
/**
* 此方法写在重写方法addTextChangedListener监听中的onTextChanged方法中,用于监听即时录入AutoCompleteTextView文本中
* 的内容input,在此之前你需要绑定按键AutoCompleteTextView;
* 根据你录入的内容来即时改变AutoCompleteTextView的adapter,然后绑定。
* 次方法没有匹配正则表达式,只是为了提供方便录入。(初期思想版,可能含有bug)
* @param input 
* @param actv 绑定你要监听的AutoCompleteTextView
* @param aa AutoCompleteTextView的适配器
* @param books你需要的基本后缀名数组,如果你不需修改你可以使用修饰符final绑定在函数中;
* @param book1基本后缀名数组的备份
* @author  sinner
*/
public void inti(String input, AutoCompleteTextView actv,
ArrayAdapter<String> aa, String[] books, String[] book1) {

input = actv.getText().toString();
if (!(input.contains("@"))) {


mauto.setText(actv.getText());
input = actv.getText().toString();
Log.d("input----", "" + input);


for (int i = 0; i < books.length; i++) {
Log.d("----" + i, books[i]);
books[i] = input + book1[i];


aa = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_dropdown_item_1line, books);
actv.setAdapter(aa);
}
}


};


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



actv = (AutoCompleteTextView) findViewById(R.id.auto);
mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto);
actv.addTextChangedListener(new TextWatcher() {


@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
inti(input, actv, aa, books, book1);


}


@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub


}


@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub


}
});

mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}






@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}


下面是布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
  android:orientation="vertical"
    tools:context=".MainActivity" >


   <AutoCompleteTextView 
       android:id="@+id/auto"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:completionHint="请选择您的邮箱"
       android:dropDownHorizontalOffset="10dp"
       android:completionThreshold="1"
       />
<MultiAutoCompleteTextView 
   android:id="@+id/mauto"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:completionThreshold="1"
   />
</LinearLayout>


0 0
原创粉丝点击