2012-03-30 2 views
0

関連するコードスニペットを添付:OnClickListenerのOnClickが返された後、実行コントロールはどこに転送されますか?コードは

public class MyPreference extends Preference { 

    public MyPreference(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    this.ctx = context; 

     this.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

      public boolean onPreferenceClick(Preference preference) { 
       Toast.makeText(ctx, "Preference has been clicked", Toast.LENGTH_LONG).show(); 

       return true; 
      } 
     }); 
    } 
} 

は今、私はいくつかの処理をしたい(基本的には仕上げを呼び出し())onPreferenceClickハンドラは私がtrueを返した後。

ポインタ?

EDIT onClick内にfinish()を追加しましたが、機能しません。エラーはありません。ちょうどトーストと他の何も。一度MyPreferenceisがクリックされると、私の意図はアプリを閉じることです。

public boolean onPreferenceClick(Preference preference) { 
       Toast.makeText(ctx, "Preference has been clicked", Toast.LENGTH_LONG).show(); 

       MainPreferenceActivity mainPref = new MainPreferenceActivity(); 
       mainPref.finish(); 

       return true; 
      } 

おそらく私は間違っていると思います。 MainActivityのnewInstanceを作成しても、MainActivityの親を殺すことはありません。私はJava nアンドロイドに新しいです。申し訳ありません:(!

+1

いいえどこに..いつも匿名のクラス..それは終わった...それは..仕上げのために戻ってくる方法を待つのはなぜなんだろう。 ** Onclick **メソッド.. – ngesh

答えて

0

あなたはデバッグポイントを設定することができますし、流れもすべての変数に異なる値を確認することができますEclipseの持つコードをデバッグしてみます。でも、あなたがステップのデバッグでステップを確認することができます。

次へ移動ステップバイステップでF8とデバッグとデバッグポイントはF6である。

これは、すべての場所のコードに役立つトップチェックすることができます。

0

あなたのコードのexcutionの流れをトレースしたい場合は、私はあなたがログを使用することをお勧め.e(TAG、 "")、そしてあなたのLogcatウインドウ(Eclipse compostion)でそれを守る。 あなたのクエストに2つのアイデアがあります:

1)終了する場合は、OnClickメソッドで終了します。 doSomethingのルーチンを使用すると、フラグが設定されている場合は何をしたい右のものですながら

if(flag) { 
    doSomething(); 
} 

2)あなたはまた同じように、あなたのonClickメソッド内でフラグを設定することができます。

関連する問題