我在一个应用程序上工作,我有9个edittext和一个我想要的自定义键盘,当我在一个选定的edittext中输入一个数字时,这个数字写得很好,例如,如果我想在我的edittext1中写12,它将是21和我也希望数字不要在其他edittext中重复,例如,当我尝试在剩余的8个edittext中输入另一个时间时,我给edittext1的值是11这个11什么都不做。我尝试使用代码,但是当我在edittext1中键入1并尝试在edittext 2中键入11时,没有什么是动画,它告诉我这里重复1次是我使用的代码
public void editTextWatcher(final EditText edt) {
edt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
edt.removeTextChangedListener(this);
edt.setText("");
edt.addTextChangedListener(this);
ArrayList<String> texts = new ArrayList<String>();
texts.add(et1.getText().toString());
texts.add(et2.getText().toString());
texts.add(et3.getText().toString());
texts.add(et4.getText().toString());
texts.add(et5.getText().toString());
texts.add(et6.getText().toString());
texts.add(et7.getText().toString());
texts.add(et8.getText().toString());
texts.add(et9.getText().toString());
for (String text : texts) {
if (s.toString().equals(text)) {
if (s.toString().equals("")) {
return;
}
AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
animation1.setDuration(70);
animation1.setStartOffset(500);
animation1.setFillAfter(true);
edt.startAnimation(animation1);
edt.removeTextChangedListener(this);
edt.addTextChangedListener(this);
afficheerr1();
return;
}
}
edt.removeTextChangedListener(this);
edt.setText(s.toString());
edt.addTextChangedListener(this);
}
});
和onCreate中的代码
editTextWatcher(et1);
editTextWatcher(et2);
editTextWatcher(et3);
editTextWatcher(et4);
editTextWatcher(et5);
editTextWatcher(et6);
editTextWatcher(et7);
editTextWatcher(et8);
editTextWatcher(et9);
我尝试了好几次,但找不到我想要的解决方案......
答案 0 :(得分:0)
你可以这样做 -
首先将所有EditText放在一个数组中 -
today="$( date +¨%Y%m%d" )"
number=0
while test -e ¨$today$suffix.txt¨; do
(( ++number ))
suffix=¨$( printf -- %02d ¨$number¨ )
done
fname=¨$today$suffix.txt¨
printf ´Will use ¨%s¨ as filename\n´ ¨$fname¨
printf -c 24m /tmp/testf > ¨$fname¨
这可能对您有所帮助