我有一个包含两个列表视图的活动。当我点击其中一个列表时,被点击的项目将从列表中删除并添加到其他列表中。我正试图在这个过程中提供一些动画。动画新ListView项目
我可以成功地在初始列表中删除现有项目的动画。但是,我还无法将新项目插入到另一个列表中。当我尝试在新列表项目上启动动画时,出现NPE错误。
lvAvailableVenues.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Venue venue = availableVenues.get(position);
availableVenues.remove(position);
availableVenuesAdapter.notifyDataSetChanged();
slideOutRight(position);
lvSelectedVenues.scheduleLayoutAnimation();
selectedVenues.add(availableVenues.get(position));
Collections.sort(selectedVenues, new Venue.VenueComparator());
selectedVenuesAdapter.notifyDataSetChanged();
slideInLeft(venue.getVenueId());
}
});
private void slideOutRight(int position) {
Animation anim = AnimationUtils.loadAnimation(VenueFilterActivity.this, android.R.anim.slide_out_right);
anim.setDuration(500);
lvAvailableVenues.getChildAt(position).startAnimation(anim);
}
private void slideInLeft(int venueId) {
for (int i=0; i<selectedVenues.size(); i++) {
if (selectedVenues.get(i).getVenueId() == venueId) {
Animation anim = AnimationUtils.loadAnimation(VenueFilterActivity.this, android.R.anim.slide_in_left);
anim.setDuration(500);
// this is the line that crashes!!!
lvSelectedVenues.getChildAt(i).startAnimation(anim);
break;
}
}
}
这是我的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.startAnimation(android.view.animation.Animation)' on a null object reference
需要注意的是,如果我注释掉这些行,然后我的名单正确更新,但没有,我试图创建动画。