Android 即使布局为“U高度=”时,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

我知道在getview()方面已经有很多问题了,但我真的不知道这里发生了什么

我有一个适配器,可以在其中动态添加文本视图:

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()
。它最终应该对方法返回的内容没有影响。