カスタムアダプタを備えたlistViewがあります。何かが起こったとき(子のクリック)、私はいくつかの計算を行い、子ビューを変更します。何らかの条件が満たされた場合は、クリックされた子に関係のない他の子を変更する必要があります。
これは機能することもありますが、失敗することもあり、DDMSはビューがnullであると言います...
コードをお見せしましょう:
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));
}
}
invalidaEsteは、変更したいビューです。vがnullの場合、インデックスをログに記録して、問題がないかどうかを確認します。常にlistView.getCount()以下です
なぜこうなった?
その他のデータ:コードは、AnimationListenerリスナーのonAnimationStart(アニメーションアニメーション)内にあります。