好的,我想以某种方式做到以下几点。 在对话框中,我希望用户能够选择一个字母(仅限字母)。他进入后应该可以看到它。如果用户对他的选择不满意,他应该只需点击另一个字母即可。他现在应该看到这封信而不是之前的那封信。
我希望尽可能多地使用标准选项。 我想某种方式自定义TextView只能显示一个当前输入的字符。或者也许某种活动或片段可以拦截来自键盘的输入,然后只是在每个输入编辑带有当前输入字符的textView上。
有人能告诉我怎么做吗?
答案 0 :(得分:1)
您需要将文本更改的侦听器附加到EditText:
这是一种解决方法:
public class XYZ extends Activity {
String toCompare = "";
....
....
....
yourEditText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(final CharSequence s, int start, int before, int count) {
if (s.length() > 0 && !toCompare.equals(s.toString())) {
toCompare = String.valueOf(s.charAt(s.length() - 1));
yourEditText.setText(String.valueOf(s.charAt(s.length() - 1)));
}
}
});
答案 1 :(得分:1)
班级成员
private MyTextWatcher mTextWatcher;
private EditText mEditText;
在适当的位置调用setTextWatcher(),例如在onCreate
中public void setTextWatcher()
{
mTextWatcher = new MyTextWatcher();
mEditText.addTextChangedListener(mTextWatcher);
}
MyTextWatcher类
public class MyTextWatcher implements TextWatcher
{
@Override
public void afterTextChanged(Editable s)
{
String text = mEditText.getText().toString();
if (text.length() > 1)
{
mEditText.removeTextChangedListener(mTextWatcher);
mEditText.setText(text.substring(1));
Selection.setSelection(mEditText.getText(), 1);
mEditText.addTextChangedListener(mTextWatcher);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
}
}