ZanyEditText.java
2.24 KB
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);
        }
    }
}