2016-03-24 17 views
1

私はこのコードで助けが必要ですが、動作しません。テキストが変更された場合、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

これは完全なコードですか?もしあなたの完全なコードをアップロードしてください! – Jois

答えて

0

この引数リストの代わりにJavaBeanまたはPOJOを作成しようとしました。次に、 'ell'変数を変更することができます。また、Cursorオブジェクトを閉じる必要があります。 まず、クエリを実行してレコードをオブジェクトに変換します。それから、あなたが望むものをオブジェクトにします。

0

このコードは、理由はあなたの関数では動作しません:あなたはfinal boolean ell final変数としてellを作っている
public void atirasfigyelo(final EditText valtozo,Cursor sql,String SQLoszlop,final boolean ell){

あなたは以下のようなannonimusクラス内から変更することができますクラスレベルの変数を作成することができます:それはブロック内のローカル変数宣言の6.3. Scope of a Declaration

ためのスコープに動作します

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);  
      }  
     });  
    }  
} 

を(14.4節)は、宣言が現れるブロックの残りの部分であり、それ自身のイニシャライザから始まり、ローカル変数宣言文の右側の宣言子を含みます。

+0

"final"を削除すると---->テキストが変更されました..... --->変数 'ell'が内部クラスからアクセスされました。最終的に宣言する必要があります:(助けてください) –

+0

はい –

+0

{ell}の値をTrueに変更する必要があります –