Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6.  
  7. <LinearLayout
  8. android:id="@+id/ll_passcodedigits"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. android:gravity="center_horizontal" >
  12.  
  13. <EditText
  14. android:id="@+id/et_passcode"
  15. android:layout_width="60dp"
  16. android:layout_height="wrap_content"
  17. android:gravity="center"
  18. android:inputType="textPassword"
  19. android:maxLength="1" />
  20.  
  21. <EditText
  22. android:id="@+id/et_passcode2"
  23. android:layout_width="60dp"
  24. android:layout_height="wrap_content"
  25. android:gravity="center"
  26. android:inputType="textPassword"
  27. android:maxLength="1" />
  28.  
  29. <EditText
  30. android:id="@+id/et_passcode3"
  31. android:layout_width="60dp"
  32. android:layout_height="wrap_content"
  33. android:gravity="center"
  34. android:inputType="textPassword"
  35. android:maxLength="1" />
  36.  
  37. <EditText
  38. android:id="@+id/et_passcode4"
  39. android:layout_width="60dp"
  40. android:layout_height="wrap_content"
  41. android:gravity="center"
  42. android:inputType="textPassword"
  43. android:maxLength="1" />
  44. </LinearLayout>
  45.  
  46. </LinearLayout>
  47.  
  48. public class Passcode extends LinearLayout {
  49.  
  50. EditText firstEditText, secondEditText, thirdEditText, fourEditText;
  51.  
  52. public Passcode(Context context) {
  53. super(context);
  54. // TODO Auto-generated constructor stub
  55.  
  56. }
  57.  
  58. public Passcode(Context context, AttributeSet attrs) {
  59. super(context, attrs);
  60.  
  61. LayoutInflater inflater = LayoutInflater.from(context);
  62. inflater.inflate(R.layout.passcode_layout, this);
  63.  
  64. loadViews();
  65. }
  66.  
  67. private void loadViews() {
  68. firstEditText = (EditText) findViewById(R.id.et_passcode);
  69. secondEditText = (EditText) findViewById(R.id.et_passcode2);
  70. thirdEditText = (EditText) findViewById(R.id.et_passcode3);
  71. fourEditText = (EditText) findViewById(R.id.et_passcode4);
  72.  
  73. // Text changed event for first EditText
  74. firstEditText.addTextChangedListener(new TextWatcher() {
  75.  
  76. @Override
  77. public void onTextChanged(CharSequence s, int start, int before,
  78. int count) {
  79. // TODO Auto-generated method stub
  80. if (s.length() == 1) {
  81. firstEditText.setFocusable(false);
  82. secondEditText.requestFocus();
  83. }
  84. }
  85.  
  86. @Override
  87. public void beforeTextChanged(CharSequence s, int start, int count,
  88. int after) {
  89. // TODO Auto-generated method stub
  90.  
  91. }
  92.  
  93. @Override
  94. public void afterTextChanged(Editable s) {
  95. // TODO Auto-generated method stub
  96.  
  97. }
  98. });
  99.  
  100. // Text changed event for second EditText
  101. secondEditText.addTextChangedListener(new TextWatcher() {
  102.  
  103. @Override
  104. public void onTextChanged(CharSequence s, int start, int before,
  105. int count) {
  106. // TODO Auto-generated method stub
  107. if (s.length() == 1) {
  108. secondEditText.setFocusable(false);
  109. thirdEditText.requestFocus();
  110. } else if (s.length() == 0) {
  111. firstEditText.setFocusable(true);
  112. firstEditText.requestFocus();
  113. }
  114. }
  115.  
  116. @Override
  117. public void beforeTextChanged(CharSequence s, int start, int count,
  118. int after) {
  119. // TODO Auto-generated method stub
  120.  
  121. }
  122.  
  123. @Override
  124. public void afterTextChanged(Editable s) {
  125. // TODO Auto-generated method stub
  126.  
  127. }
  128. });
  129.  
  130. // Text changed event for third EditText
  131. thirdEditText.addTextChangedListener(new TextWatcher() {
  132.  
  133. @Override
  134. public void onTextChanged(CharSequence s, int start, int before,
  135. int count) {
  136. // TODO Auto-generated method stub
  137.  
  138. if (s.length() == 1) {
  139. thirdEditText.setFocusable(false);
  140. fourEditText.requestFocus();
  141. } else if (s.length() == 0) {
  142. secondEditText.setFocusable(true);
  143. secondEditText.requestFocus();
  144.  
  145. }
  146. }
  147.  
  148. @Override
  149. public void beforeTextChanged(CharSequence s, int start, int count,
  150. int after) {
  151. // TODO Auto-generated method stub
  152.  
  153. }
  154.  
  155. @Override
  156. public void afterTextChanged(Editable s) {
  157. // TODO Auto-generated method stub
  158.  
  159. }
  160. });
  161.  
  162. // Text changed event for fourth EditText
  163. fourEditText.addTextChangedListener(new TextWatcher() {
  164.  
  165. @Override
  166. public void onTextChanged(CharSequence s, int start, int before,
  167. int count) {
  168. // TODO Auto-generated method stub
  169.  
  170. if (s.length() == 1) {
  171. thirdEditText.setFocusable(false);
  172.  
  173. } else if (s.length() == 0) {
  174. thirdEditText.setFocusable(true);
  175. thirdEditText.requestFocus();
  176.  
  177. }
  178. }
  179.  
  180. @Override
  181. public void beforeTextChanged(CharSequence s, int start, int count,
  182. int after) {
  183. // TODO Auto-generated method stub
  184.  
  185. }
  186.  
  187. @Override
  188. public void afterTextChanged(Editable s) {
  189. // TODO Auto-generated method stub
  190.  
  191. }
  192. });
  193. }
  194.  
  195.  
  196.  
  197. }
  198.  
  199. public interface OnPasscodeCompletedListener {
  200. public void onComplete(String passcode);
  201. }
  202.  
  203. private OnPasscodeCompletedListener listener = null;
  204.  
  205. public void setOnPasscodeCompletedListener(OnPasscodeCompletedListener listener) {
  206. this.listener = listener;
  207. }
  208.  
  209. if (listener != null) {
  210. // Concatenate the values from EditText to create the passcode
  211. listener.onComplete(passcode);
  212. }
  213.  
  214. private OnPasscodeCompletedListener onPasscodeCompletedListener
  215. = new OnPasscodeCompletedListener() {
  216. @Override
  217. public void onComplete(String passcode) {
  218. Log.i(TAG, "passcode = " + passcode);
  219. }
  220. };
  221. passcodeView.setOnPasscodeCompletedListener(onPasscodeCompletedListener);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement