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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
