package com.video.youth.ui.subview;
|
|
import android.content.Context;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.util.AttributeSet;
|
import android.view.View;
|
import android.widget.EditText;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
|
|
import com.video.youth.R;
|
|
public class VerifyCodeViewShowLine extends RelativeLayout {
|
|
public EditText editText;
|
private TextView[] textViews;
|
private static int MAX = 4;
|
private String inputContent;
|
|
public VerifyCodeViewShowLine(Context context) {
|
this(context, null);
|
}
|
|
public VerifyCodeViewShowLine(Context context, AttributeSet attrs) {
|
this(context, attrs, 0);
|
}
|
|
public VerifyCodeViewShowLine(Context context, AttributeSet attrs, int defStyleAttr) {
|
super(context, attrs, defStyleAttr);
|
View.inflate(context, R.layout.view_youth_input_code, this);
|
textViews = new TextView[MAX];
|
textViews[0] = findViewById(R.id.tv_code_1);
|
textViews[1] = findViewById(R.id.tv_code_2);
|
textViews[2] = findViewById(R.id.tv_code_3);
|
textViews[3] = findViewById(R.id.tv_code_4);
|
editText = findViewById(R.id.edit_text_view);
|
|
editText.setCursorVisible(false);//隐藏光标
|
setEditTextListener();
|
}
|
|
private void setEditTextListener() {
|
editText.addTextChangedListener(new TextWatcher() {
|
|
@Override
|
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable editable) {
|
inputContent = editText.getText().toString();
|
|
if (inputCompleteListener != null) {
|
if (inputContent.length() >= MAX) {
|
inputCompleteListener.inputComplete();
|
} else {
|
inputCompleteListener.invalidContent();
|
}
|
}
|
|
for (int i = 0; i < MAX; i++) {
|
if (i < inputContent.length()) {
|
textViews[i].setText(String.valueOf(inputContent.charAt(i)));
|
} else {
|
textViews[i].setText("");
|
}
|
}
|
}
|
});
|
}
|
|
|
private InputCompleteListener inputCompleteListener;
|
|
public void setInputCompleteListener(InputCompleteListener inputCompleteListener) {
|
this.inputCompleteListener = inputCompleteListener;
|
}
|
|
public interface InputCompleteListener {
|
|
void inputComplete();
|
|
void invalidContent();
|
}
|
|
public String getEditContent() {
|
return inputContent;
|
}
|
|
|
|
|
}
|