2011-09-16 8 views
-1

これはかなり基本的な質問ですが、既に私のようなものが見つかっていますが、私が間違っていることは正直に分かりません。別のクラスから変数[]にアクセスする際の問題

public class InteractiveArrayAdapter extends ArrayAdapter<Model> { 

    private final List<Model> list; 
    private final Activity context; 

    public int teste; 

    public InteractiveArrayAdapter(Activity context, List<Model> list) { 
     super(context, R.layout.rowbuttonlayout, list); 
     this.context = context; 
     this.list = list; 

    } 

    public int getTest() 
    { 
     return teste; 
    } 

    static class ViewHolder { 
     protected TextView text; 
     protected CheckBox checkbox; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     teste = 2; 
.... 
} 
} 

およびその他のクラス:

try{ 

       InteractiveArrayAdapter adapt = new InteractiveArrayAdapter(this, 
      getAPPS(0)); 
       int test = adapt.getTest(); 
       Toast.makeText(this, Integer.toString(test), Toast.LENGTH_LONG).show(); 
       Log.v("TAG",Integer.toString(test)); 
      }catch(Exception e) 
       { 
       Log.v("EXCEPTION",e.toString()); 
      } 

編集:私は愚かな過ちのためにnullを取得し、あなたのほとんどが言うように、今私は原始取得と0を期待しています。

私のアプリのある時点で、チェックボックスがクリックされるたびにgetViewが実行されます。私はそれを配列の[]に徐々に(i + 1)(私はちょうどintを理解しやすいように置く - 今は間違いだったと思う)、そしてユーザーがokを入力したら配列全体にアクセスしたい。もし私が望むようにそれが可能であるかどうか疑問に思います。

だから私はやるときに、この

InteractiveArrayAdapter adapt = new InteractiveArrayAdapter(this, 
       getAPPS(0)); 

これは、無意味である私は再び何かを実行する必要はありませんので、私はちょうど作成した配列を取得したい - 可能であれば!

+3

"this.teste"をnull以外の値に初期化しましたか? –

+4

ここで書いたように、 'getTest()'が 'null'を返すことは不可能です。このメソッドはプリミティブ 'int'を返すものとして宣言されています。 – Mac

+0

はこれが本当の質問ですか? –

答えて

1

しかし、それはあなたのコードに従って行われるべきです。 teste変数を更新するためにBメソッドを呼び出さない。

2

あなたのコードはコンパイルされません。 return this.teste;return this.test;である必要があります。

+0

申し訳ありませんが、私はコピー貼り付けをしていませんでした。 – Tiago

2

これは明らかにコンパイルされないので、これは直接コピー/ペーストではありません。実際のエラーや問題を扱うときはいつも、実際のコードを貼り付けるのが最善です。私たちはすべてプログラマーなので、読むことができます。

しかし、上に示した構造に基づいて、return this.testereturn this.test)の入力ミスがコードに含まれているか、インスタンス変数testをコンストラクタで初期化していません。

あなたが書いている実際のコードを表示せずに、言うことは不可能です(特に、test変数を初期化するセクションとその値を返す部分がありません - 私たちは読者を気にしません)。

これは2つの潜在的な候補です。ただし、test変数をpublicとマークすると、メソッド呼び出しを行わずにクラスにアクセスできるため、getter/setterメソッドを持つ必要はありません。それが公衆の行動です。

関連する問題