Manchmal gibt listView.getChildAt (int index) NULL zurück (Android)

Ich habe eine ListView mit einem benutzerdefinierten Adapter. Wenn etwas passiert (ein Klick in ein Kind), mache ich einige Berechnungen und ändere die Kindansicht. WENN eine Bedingung erfüllt ist, sollte ein anderes Kind, das nichts mit dem angeklickten Kind zu tun hat, geändert werden.

Dies funktioniert manchmal, aber manchmal schlägt fehl und das DDMS gibt an, dass die Ansicht null ist ...

Lass mich dir den Code zeigen:

<code>        if(invalidaEste != -1)
        {
            try
            {
                View v = lv_data.getChildAt(invalidaEste);
                if( v== null)
                {
                    Log.e("MY_LOG", "SIZE " + lv_data.getCount());
                    Log.e("MY_LOG", "IS_NULL " + String.valueOf(invalidaEste)); 
                }

                if(invalidaEste >= lv_data.getFirstVisiblePosition() &&
                   invalidaEste <= lv_data.getLastVisiblePosition())
                {
                    RelacionFacturaPago rpf = (RelacionFacturaPago)lv_data.getAdapter().getItem(invalidaEste);
                    TextView tv = (TextView)v.findViewById(R.id.tv_pendiente);
                    tv.setText(Formato.double2Screen(rpf.getPorPagar()));
                }
            }
            catch (Exception e)
            {
                Log.e("MY_LOG", "FAIL");
                Log.e("MY_LOG", String.valueOf(invalidaEste));
            }

        }
</code>

invalidaEste ist die Ansicht, die ich ändern möchte. Wannv ist null Ich protokolliere den Index, um zu überprüfen, ob er in Ordnung ist. Immer ist kleiner oder gleich der listView.getCount ()

Warum passiert dies?

Weitere Daten: Der Code befindet sich im onAnimationStart (Animation animation) eines AnimationListener-Listeners.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage