Android 即使布局为“U高度=”时,getView也会多次调用;填写“家长”;
我知道在getview()方面已经有很多问题了,但我真的不知道这里发生了什么 我有一个适配器,可以在其中动态添加文本视图:Android 即使布局为“U高度=”时,getView也会多次调用;填写“家长”;,android,listview,getview,Android,Listview,Getview,我知道在getview()方面已经有很多问题了,但我真的不知道这里发生了什么 我有一个适配器,可以在其中动态添加文本视图: public View getView(int position, View convertView, ViewGroup parent) { OrderForAdapter currentData = data.get(position); // getting data if (convertView == null) { conve
public View getView(int position, View convertView, ViewGroup parent) {
OrderForAdapter currentData = data.get(position); // getting data
if (convertView == null) {
convertView = inflater.inflate(R.layout.order_detailsforlist, null);
}
if (currentData != null) {
LinearLayout order_details_layout =
(LinearLayout) convertView.findViewById(R.id.order_details_layout);
// Adding the textView name of the person
TextView labelName = new TextView(context);
labelName.setText(currentData.getName());
order_details_layout.addView(labelName);
// looping through all "titres" and display all the titles
ArrayList<ObjectForAdapter> listOfObjects = currentData.getObjects();
for (int i = 0; i < listOfObjects.size(); i++) {
TextView labelTitle = new TextView(context);
labelTitle.setText(listOfObjects.get(i).getTitle());
// Adding the title of each object
order_details_layout.addView(labelTitle);
}
}
return convertView;
}
public View getView(int位置、视图转换视图、视图组父视图){
OrderForAdapter currentData=data.get(位置);//获取数据
if(convertView==null){
convertView=充气机。充气(R.layout.order\u Details列表,空);
}
如果(currentData!=null){
线性布局订单\详细信息\布局=
(线性布局)convertView.findViewById(R.id.order\U details\U布局);
//添加此人的textView名称
TextView labelName=新的TextView(上下文);
labelName.setText(currentData.getName());
订单\详细信息\布局。添加视图(labelName);
//循环浏览所有“标题”并显示所有标题
ArrayList listOfObjects=currentData.getObjects();
对于(int i=0;i
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.greederz.activities.ListOrdersActivity">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/list" />
</LinearLayout>
当我第一次启动应用程序时,没有问题,所有内容都正确显示,并且只调用一次getView()
然而,当我转到另一个活动并返回到此活动时,突然连续调用了2或3次getView
我还注意到,旋转屏幕会使getView()被调用一次(这样就可以了)。因此,一定是视图被重用或活动未被正确销毁
我能找到的唯一答案是layout\u height=“fill\u parent”,我改变了它,但运气不好
请帮助:)getView更频繁地启动是正常的。至少它激发了用户(从一开始)永远可见的视图!重用并不意味着只需要调用一次getView。我认为您完全误解了getView。无法保证AdapterView准备布局时会调用多少次
getView()
。它最终应该对方法返回的内容没有影响。