Blame view

C5/app/src/main/java/com/sunvote/xpadapp/base/ZanyEditText.java 2.24 KB
fac86401   孙向锦   初始化C5 Vote
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  package com.sunvote.xpadapp.base;
  
  import android.content.Context;
  import android.graphics.Color;
  import android.text.Selection;
  import android.text.Spannable;
  import android.util.AttributeSet;
  import android.view.KeyEvent;
  import android.view.inputmethod.EditorInfo;
  import android.view.inputmethod.InputConnection;
  import android.view.inputmethod.InputConnectionWrapper;
  import android.widget.EditText;
  
  import java.util.Random;
  
  public class ZanyEditText extends EditText {
  
      private Random r = new Random();
  
      public ZanyEditText(Context context, AttributeSet attrs, int defStyle) {
          super(context, attrs, defStyle);
      }
  
      public ZanyEditText(Context context, AttributeSet attrs) {
          super(context, attrs);
      }
  
      public ZanyEditText(Context context) {
          super(context);
      }
  
      public void setRandomBackgroundColor() {
          setBackgroundColor(Color.rgb(r.nextInt(256), r.nextInt(256), r
                  .nextInt(256)));
      }
  
      @Override
      public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
          return new ZanyInputConnection(super.onCreateInputConnection(outAttrs),
                  true);
      }
  
      private class ZanyInputConnection extends InputConnectionWrapper {
  
          public ZanyInputConnection(InputConnection target, boolean mutable) {
              super(target, mutable);
          }
  
          @Override
          public boolean sendKeyEvent(KeyEvent event) {
              if (event.getAction() == KeyEvent.ACTION_DOWN
                      && event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
               //   ZanyEditText.this.setRandomBackgroundColor();
              	String text = ZanyEditText.this.getText().toString();
              	if(text.length()>0){
              		ZanyEditText.this.setText(text.substring(0, text.length()-1));
              		
              		 
              		CharSequence seqtext = ZanyEditText.this.getText();
              		 if (seqtext instanceof Spannable) {
              		    Spannable spanText = (Spannable)seqtext;
              		    Selection.setSelection(spanText, seqtext.length());
              	  }
  
              	}
                  // Un-comment if you wish to cancel the backspace:
                  // return false;
              }
              return super.sendKeyEvent(event);
          }
  
      }
  
  }