我需要这段代码的帮助,它不起作用。我希望在文本更改时将boolean
值更改为true
。任何帮助将不胜感激。
public class Atiras {
public void atirasfigyelo(final EditText valtozo,Cursor sql,String SQLoszlop,final boolean ell){
valtozo.setText("" + sql.getInt(sql.getColumnIndex(SQLoszlop)));
ell=false;
valtozo.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
ell=true;
}
@Override
public void afterTextChanged(Editable s) {
valtozo.setBackgroundColor(Color.RED);
}
});
}
}
答案 0 :(得分:0)
此代码无效,因为在您的功能中:
public void atirasfigyelo(final EditText valtozo,Cursor sql,String SQLoszlop,final boolean ell){
您将ell
作为final boolean ell
最终变量。
您可以创建一个类级变量,您可以从annonimus类内部更改,如下所示:
public class Atiras {
private boolean isTrue;
public void atirasfigyelo(final EditText valtozo, Cursor sql, String SQLoszlop, final boolean ell) {
valtozo.setText("" + sql.getInt(sql.getColumnIndex(SQLoszlop)));
isTrue= false;
valtozo.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
isTrue= true;
}
@Override
public void afterTextChanged(Editable s) {
valtozo.setBackgroundColor(Color.RED);
}
});
}
}
它会起作用,因为6.3. Scope of a Declaration
块中的局部变量声明的范围(第14.4节)是声明出现的块的其余部分,从其自己的初始化器开始,并包括局部变量声明语句中右侧的任何其他声明符。 / p>
答案 1 :(得分:0)
您尝试创建JavaBean或POJO而不是此参数列表。然后你可以改变'ell'变量。并且Cursor对象必须关闭。 首先,您执行查询,然后将记录转换为对象。然后你把对象做成你想要的。