android怎么实现监听用户输入

 我来答
茶达人
2016-01-16 · TA获得超过3048个赞
知道大有可为答主
回答量:3838
采纳率:66%
帮助的人:262万
展开全部
  只要是监听用户输入相关属性只要进行修改了都会自加。有了这个说明,自己对android虚拟机上的联系人进行测试,然后把sqlit数据库导出进行查看,发现VERSION确实发生了改变。有了这个依据,便能很好的解决监听用户输入联系人数据变化。

  首先我先放上一段JAVA的demo展现思路。android代码稍后放上。

  public class ContactJianTing

  {

  public static void main(String args[])

  {

  init();

  String str = "1-2";

  String a[] =str.split("-");

  for (String string : a)

  {

  System.out.println(string);

  }

  }

  private static void init()

  {

  HashMap a = new HashMap();

  HashMap b = new HashMap();

  for (int key = 1; key <= 1000; key++)

  {

  a.put(String.valueOf(key), String.valueOf(key));

  b.put(String.valueOf(key), String.valueOf(key+1));

  }

  Set aSet = a.keySet();

  for (String string : aSet)

  {

  System.out.println(string);

  }

  long start = System.currentTimeMillis();

  for(int i = 1;i<=1000;i++)

  {

  System.out.println("号码 "+i);

  if(!a.get(String.valueOf(i)).equals(b.get(String.valueOf(i))))

  {

  System.out.println("数据不同");

  }

  System.out.println("-----------");

  }

  long end = System.currentTimeMillis();

  long sum = end - start;

  System.out.println("总共耗时"+sum);

  }

  }

  在没有连接数据库的情况下,使用HashMap,1000条数据耗时40毫秒左右。对于用户而言,拥有1000个联系人的手机毕竟少之又少。
she584713272
2015-05-15 · TA获得超过162个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:129万
展开全部
//事件处理

class EditChangedListener implements TextWatcher {
private CharSequence temp;//监听前的文本
private int editStart;//光标开始位置
private int editEnd;//光标结束位置
private final int charMaxNum = 10;

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if (DEBUG)
Log.i(TAG, "输入文本之前的状态");
temp = s;
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (DEBUG)
Log.i(TAG, "输入文字中的状态,count是一次性输入字符数");
mTvAvailableCharNum.setText("还能输入" + (charMaxNum - s.length()) + "字符");

}

@Override
public void afterTextChanged(Editable s) {
if (DEBUG)
Log.i(TAG, "输入文字后的状态");
/** 得到光标开始和结束位置 ,超过最大数后记录刚超出的数字索引进行控制 */
editStart = mEditTextMsg.getSelectionStart();
editEnd = mEditTextMsg.getSelectionEnd();
if (temp.length() > charMaxNum) {
Toast.makeText(getApplicationContext(), "你输入的字数已经超过了限制!", Toast.LENGTH_LONG).show();
s.delete(editStart - 1, editEnd);
int tempSelection = editStart;
mEditTextMsg.setText(s);
mEditTextMsg.setSelection(tempSelection);
}

}
};

//然后edittext添加监听。

EditText mEditTextMsg = (EditText)findViewById(R.id.edit);

mEditTextMsg.addTextChangedListener(new EditChangedListener());
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式