2016-12-27 4 views
0

私のアプリではこの奇妙な出来事があります。私は以下のリストにあるコードを使用して、TextViewにカウンタの値を入力します。ビューがカウンタの値を2倍に更新するたびに、各サイクルの後にカウンタを0に設定していますが、動作していないようです。アダプタのgetView()intはすべての負荷を倍増させます

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View itemView = convertView; 
    if (itemView == null) { 
     itemView = inflater.inflate(R.layout.layouttitle, container, false); 
    } 
    for (myStruct singleItem : myData) { 
     counter++; 
    } 
    TextView totalsText = (TextView) itemView.findViewById(R.id.myTotalsText); 
    totalsText.setText("" + counter); 
    counter++; 
} 
+0

getViewメソッドは、デバイス上で新しいビューを作成するときに、呼び出し時間を取得します。 getviewメソッドでカウンタを追加しないでください。それはあなたに望ましい出力を与えることはありません –

+0

カウンタ変数を使って達成しようとしていることを説明できます – Rahul

答えて

3

getView()方法が複数回呼び出されると、それが呼び出される回数を保証するものではありませんので、より良い任意の計算のためかの項目数に関連する他のタスクあちこちに、このメソッドを使用しないでくださいあなたのListView。

なぜcounterがグローバル変数であるのか説明できますか?

+1

一般的な原則 - 名前が 'get'で始まるメソッドは可視の内部状態あなたがそれを呼び出すオブジェクトの –

+0

問題を引き起こす可能性のあるgetView()内のアダプタのオブジェクトを更新/変更しようとしても、@DavidWallaceに同意してください。 – Rahul

+0

get内のディスプレイに表示され、アダプタレベルでのみ変更されます。私は私のビューで、私はデータベースまたは配列に格納することを考えている最善の方法となるだろう合計セクションを追加したいです。 – user3175140

関連する問題