【发布时间】:2012-02-20 09:46:22
【问题描述】:
我创建了一个自定义列表视图,除了列表不能平滑滚动之外,它的效果很好。它波涛汹涌而缓慢。
这是我填充列表视图的代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listitem, null);
}
FilmRecord film = films.get(position);
if (film != null) {
TextView filmTitle = (TextView) v.findViewById(R.id.filmtitle);
TextView filmShowingDate = (TextView) v.findViewById(R.id.filmshowingtime);
TextView filmAdded = (TextView) v.findViewById(R.id.filmadded);
TextView filmLocations = (TextView) v.findViewById(R.id.filmlocations);
TextView filmDescription = (TextView) v.findViewById(R.id.filmdescription);
TextView filmProvider = (TextView) v.findViewById(R.id.filmprovider);
TextView filmTicketUrl = (TextView) v.findViewById(R.id.filmticketurl);
if (filmTitle != null) {
filmTitle.setText(film.filmTitle);
}
if(filmDescription != null) {
filmDescription.setText(film.filmDescription );
}
if(filmLocations != null) {
filmLocations.setText(film.filmLocations );
}
if(filmShowingDate != null) {
filmShowingDate.setText("Showing: " + film.filmShowingDate );
}
if(filmAdded != null) {
filmAdded.setText("Added on: " + film.filmAdded );
}
if(filmProvider != null) {
filmProvider.setText(film.filmProvider );
}
if(filmTicketUrl != null) {
filmTicketUrl.setText(film.filmTicketUrl );
}
}
//Check who the provider is and set the imageview to provider logo
ImageView imageView = (ImageView) v.findViewById(R.id.providerImage);
if(film.filmProvider.equals("Cineworld")) {
Log.d("Provider", "Provider is Cineworld");
imageView.setImageResource(R.drawable.cineworld);
}
else if(film.filmProvider.equals("Show Film Fist")){
Log.d("Provider", "Provider is Show Film Fist");
imageView.setImageResource(R.drawable.show_film_first);
}
return v;
}
有没有人在创建自定义列表视图时遇到过类似的问题?一如既往的任何帮助将不胜感激:)
【问题讨论】:
-
你需要改变你的逻辑。您正在检查每个字段是否为 null,我认为当您在不检查 null 的情况下设置文本时,它不会给出任何错误。 Showing: 和Added on: 必须有两个if。但是您可以通过在 POJO 中设置这两个 pre_text 来删除这两个。希望它会清除。
标签: android listview custom-lists