java – 适配器getView被多次调用,位置为0
发布时间:2020-12-15 04:22:20 所属栏目:Java 来源:网络整理
导读:我面临一些从动态布局渲染ListView的问题.我不知道为什么只使用位置0和多次调用getView! 我搜索了互联网和stackoverflow但无法找到合适的答案. 我实际上是想做一个这样的演示:http://www.framentos.com/en/android-tutorial/2012/07/16/listview-in-androi
我面临一些从动态布局渲染ListView的问题.我不知道为什么只使用位置0和多次调用getView!
我搜索了互联网和stackoverflow但无法找到合适的答案. 我实际上是想做一个这样的演示:http://www.framentos.com/en/android-tutorial/2012/07/16/listview-in-android-using-custom-listadapter-and-viewcache/ 值得注意的是,我的主要布局文件被滚动条包围. 主要活动布局文件: <ListView android:id="@+id/city_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/questionsList" android:paddingTop="20sp" > </ListView> 我的列表视图布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="80dip" > <ImageView android:id="@+id/ImageCity" android:layout_width="90sp" android:layout_height="90sp" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toRightOf="@id/ImageCity" android:orientation="vertical" android:paddingLeft="10sp"> <TextView android:id="@+id/cityName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="25sp" /> <TextView android:id="@+id/cityLinkWiki" android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="web" android:textSize="15sp" /> </LinearLayout> </RelativeLayout> 适配器类: import com.incidentreport.app.classes.objects.City; public class CityListAdapter extends ArrayAdapter{ private int resource; private LayoutInflater inflater; private Context context; public CityListAdapter ( Context ctx,int resourceId,List objects) { super( ctx,resourceId,objects ); resource = resourceId; inflater = LayoutInflater.from( ctx ); context=ctx; } @Override public View getView ( int position,View convertView,ViewGroup parent ) { Log.v("adapter","pos: " + position + "#" + resource); /* create a new view of my layout and inflate it in the row */ convertView = ( RelativeLayout ) inflater.inflate( resource,null ); /* Extract the city's object to show */ City city = (City)getItem( position ); /* Take the TextView from layout and set the city's name */ TextView txtName = (TextView) convertView.findViewById(R.id.cityName); txtName.setText(city.getName()); /* Take the TextView from layout and set the city's wiki link */ TextView txtWiki = (TextView) convertView.findViewById(R.id.cityLinkWiki); txtWiki.setText(city.getUrlWiki()); /* Take the ImageView from layout and set the city's image */ ImageView imageCity = (ImageView) convertView.findViewById(R.id.ImageCity); return convertView; } } 主要活动代码snipps: List listCity= new ArrayList(); listCity.add(new City("London","http://en.wikipedia.org/wiki/London","london")); listCity.add(new City("Rome","http://en.wikipedia.org/wiki/Rome","rome")); listCity.add(new City("Paris","http://en.wikipedia.org/wiki/Paris","paris")); ListView listViewCity = ( ListView ) findViewById( R.id.city_list); listViewCity.setAdapter( new CityListAdapter(this,R.layout.layout_city,listCity ) ); 解决方法
好的,我通过尽可能扩展ListView来解决这个问题.这意味着,给出一个动态的全高度,以便所有项目都可见.
我按照以下解决方案: Calculate the size of a list view or how to tell it to fully expand (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读