2012-02-13 76 views
0

我如何知道编辑文本完成编辑的时间?就像用户选择下一个方框时一样,或者按下软键盘上的完成按钮。Android我如何知道编辑文本已完成编辑?

我的代码是在这里

EditText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     public void onFocusChange(View arg0, boolean arg1) { 

     int tag=(Integer) arg0.getTag(); 
     final EditText Caption = (EditText) arg0; 

     previous_Meter_Reading = new HashMap<String, String>(); 
     previous_Meter_Reading = c.get(tag); 
     String pre =previous_Meter_Reading.get("previousMeterReading"); 
     previous =Integer.parseInt(pre); 


     Log.i("out",pre); 


     if (!arg1 && ! Caption.getText().toString().equals("")) { 

     int pos=arg0.getId();   
     Log.i("Tag", arg0.getTag().toString()); 

     Current = Integer.valueOf(Caption.getText().toString()); 
     if(Current<previous){ 
      AlertDialog.Builder builder = new AlertDialog.Builder(
        context); 
      builder.setTitle("WARNING"); 
      builder.setIcon(android.R.drawable.ic_dialog_alert); 
      builder.setMessage("Current value should be greater"); 
      builder.setPositiveButton("ok", 
        new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 

         } 
        }); 

      AlertDialog diag = builder.create(); 
      diag.show(); 
     } 





     Toast.makeText(context, "Focus Changed",Toast.LENGTH_SHORT); 

     } 

     } }); 


    return view; 
} 

每个字符输入我的alertbox后弹出。基本上我想获得输入文本时,我将焦点更改为下一个EditText框,并获得失去焦点edittext的价值,并与prevoius值比较可以任何一个给出任何解决方案 在此先感谢。

+0

http://stackoverflow.com/questions/8063439/android-edittext-finished-typing-event – Rakhita 2012-02-13 07:16:27

回答

0

在你的情况下,我可能会给你的最好建议是在对话框中接收用户的输入并将它们返回到TextView字段。通过这种方式,当用户在对话框中按下确定时,它可能会触发您的自定义代码,使用之前输入的文本进行任何您想要的操作。

如果你正在考虑完成键盘上关键事件,那么它并不可靠,因为用户可能也只需按下它使键盘完成事件不会去挑衅

0

你导航到下一个的EditText实现类似于:EditText的OnEditorActionListener。

0

您的editText必须设置一个OnEditorActionListener。你可以像这样定义一个EditorActionListener:

OnEditorActionListener mListener = new TextView.OnEditorActionListener(){ 

     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_ACTION_DONE) { 
       //do stuff here 
      } 
       return true; 
     } 
    };