2010-11-23 9 views
0

私は1つのクラスに2つの異なるメソッドを使用しています。私は一つの方法でプライベートvoidでメソッドキャストに整数を呼び出す

private void detect(); 
    int facesFound = detector.findFaces(bitmap565, faces); 

検出器は、bitmap565及び面は、全て同じ方法で定義されています。

別の方法では、facesFoundの値を呼び出したいと思います。

ので:

private void crop(){ 
if (facesFound > 1){ 

} 

私の問題があり、それがローカルにキャストされているので、私はこの方法からその整数にアクセスすることはできません。コードを呼び出すために私のコードを変更する最良の方法は何ですか?

編集:メソッドを追加するには:

private final View.OnClickListener btnClick = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      switch (v.getId()) { 
    case R.id.action_button: 
     crop(); 

だから、あなたが私の新しいプライベートint型の検出()メソッドによって戻された整数を得るように定義された私のクラスの最上部にある整数を宣言すると言っていますか?

+5

'メンバ変数もfacesFound'持っている論理的なことか、あなたが設定しますそれは 'detect'を介してですか? – birryree

+0

+1、私は同意します。それは論理的な選択だろう。 –

+0

詳細を教えていただけますか?申し訳ありません、私はこれにはかなり新しいです。 – Sapp

答えて

1

変更detect()crop()へ:

private int detect() 
{ 
    return detector.findFaces(bitmap565, faces); 
} 

private void crop(int numberOfFacesFound) 
{ 
    if(numberOfFacesFound > 1) 
    { 

    } 
} 

あなたからcrop()を呼び出しているところはどこでもその後、:

int numberOfFacesFound = detect(); 
crop(numberOfFacesFound); 
+0

switch文を使用してonClickListenerとして別のプライベートメソッドでcropを呼び出すとどうなりますか? – Sapp

+0

'detect()'を呼び出した場所です。あなたが何らかの理由でそれを行うことができない場合は、 'detect()'によって返された値を保持するようにクラス内のプライベートフィールドを宣言し、 'crop(int)'に渡すことができます。 –

+0

私のプライベートボタンの方法で編集...あなたのコメントをまだ得ていないが、私は確かに答えを得る;) – Sapp

関連する問題