当前位置: 首页 > 知识库问答 >
问题:

未调用自定义ArrayAdapter中的getView

童琪
2023-03-14
public class CEL_ElementsFromXMLArrayAdapter extends ArrayAdapter<LinkedHashMap<RoomItem, LinkedHashMap<ItemType, List<RoomDamage>>>> {

private Context context;
private int resource;
private List<LinkedHashMap<RoomItem, LinkedHashMap<ItemType, List<RoomDamage>>>> elementsFromXMLList;

public CEL_ElementsFromXMLArrayAdapter(Context context, int resource,
        List<LinkedHashMap<RoomItem, LinkedHashMap<ItemType, List<RoomDamage>>>> elementsFromXMLList) {
    super(context, resource, elementsFromXMLList);

    this.context = context;
    this.resource = resource;
    this.elementsFromXMLList = elementsFromXMLList;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {

    final int positionItem = position;
    View view;
    LayoutInflater viewInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if(convertView != null)
        view = convertView;
    else
        view = viewInflater.inflate(R.layout.etat_piece_item, parent, false);
    {...}
    return view;
}

@Override
public int getCount() {
    return this.elementsFromXMLList.size();
}

这是我设置适配器的方式:

CEL_ElementsFromXMLArrayAdapter cel_ElementsFromXMLArrayAdapter = new CEL_ElementsFromXMLArrayAdapter(mContext, R.layout.etat_piece_item, elementsFromXMLLinkedHashMap);
            listViewElements.setAdapter(cel_ElementsFromXMLArrayAdapter);

我正在寻找一个解决方案,从昨天开始,我已经阅读了所有关于StackOverflow的帖子,但没有一个与我的问题相匹配。所以我想知道,它是否可以来自LinkedHashMap<...>

编辑:这是我的布局r.layout.etat_piece_item

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mis2_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="1dip"
    android:background="@color/white"
    android:orientation="horizontal"
    android:weightSum="12" >

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <TextView
        android:id="@+id/descriptionElement_TextView"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:clickable="true"
        android:gravity="center"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:textColor="@color/black1"
        android:textSize="@dimen/mis_item_size" />

    <ImageView
        android:id="@+id/stroke_dim"
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <Spinner
        android:id="@+id/typeElement_Spinner"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:layout_weight="2.5"
        android:background="@drawable/spinner_ab_default"
        android:clickable="true"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:textSize="@dimen/mis_item_size"
        android:textStyle="normal" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <EditText
        android:id="@+id/quantiteElement_EdiText"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:inputType="number"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:singleLine="true"
        android:textColor="@color/black1"
        android:textSize="@dimen/mis_item_size" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <TextView
        android:id="@+id/etatElement_TextView"
        style="@android:style/Widget.Holo.Light.EditText"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="3dp"
        android:layout_weight="1.5"
        android:clickable="true"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:onClick="callChooseEtat"
        android:paddingLeft="5dp"
        android:paddingTop="10dp"
        android:textStyle="normal" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <TextView
        android:id="@+id/ent_obervations_val"
        style="@android:style/Widget.Holo.Light.EditText"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:clickable="true"
        android:gravity="center"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:singleLine="true"
        android:textColor="@color/black1"
        android:textSize="@dimen/mis_item_size" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <LinearLayout
        android:id="@+id/imageLayout"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:clickable="true"
        android:gravity="center"
        android:onClick="callCameraInList" >

        <ImageView
            android:id="@+id/photoElement_ImageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:contentDescription="@string/img"
            android:src="@drawable/photo_img" />
    </LinearLayout>

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <EditText
        android:id="@+id/trouElement_EditText"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:hint="@string/zero"
        android:inputType="number"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:singleLine="true"
        android:textColor="@color/black1"
        android:textSize="@dimen/mis_item_size" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

    <TextView
        android:id="@+id/actionElement_TextView"
        style="@android:style/Widget.Holo.Light.EditText"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:clickable="true"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:gravity="center"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:singleLine="true"
        android:textColor="@color/black1"
        android:textSize="@dimen/mis_item_size" />

    <ImageView
        android:layout_width="@dimen/stroke_dim"
        android:layout_height="fill_parent"
        android:background="@color/light_line"
        android:contentDescription="@string/img" />

</LinearLayout>

共有1个答案

耿弘阔
2023-03-14

它被调用,它只返回一个空值。对于第一个getView调用,ConvertView是null,所以您必须对某些内容进行充气(即使它不是您的第一个位置,没有任何东西可以保证它不是null),而且您似乎不会对任何内容进行充气。

试试看:

if(convertView != null)
  view = convertView;
else
  view = viewInflater.inflate(R.layout.yourlayout, parent, false);

其中r.layout.YourLayout是要填充列表的布局。

 类似资料:
  • 在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢

  • 不管怎样,关于我的问题:有人愿意编写一个非常、非常、非常、通用、直接和简单的自定义ArrayAdapter,该ArrayAdapter需要两个字符串值,可以与ListView一起使用吗?…或者,尝试调试我的尝试,希望找到我的问题所在。 任何帮助都很感激,谢谢。 我已经包括了我知道需要的代码,但我一直在与其他所有东西罢工。 错误:(20,9)错误:没有为ArrayAdapter找到合适的构造函数(上

  • 问题内容: 实例化ArrayAdapter时,我收到以下警告(编译正常): 这是问题所在: 有人对它为什么给我这个警告有任何想法吗? 问题答案: 这是因为希望您指定它将处理的对象类型。因此,为了避免这些警告,请执行以下操作:

  • 这是customListAdapter的代码(在第一个链接之后) 在我的主要活动中,我这样调用自定义基适配器: (不能100%确定是我应该放在那里的id。

  • 我试图为当前登录的用户添加一些自定义数据,所以我发现我可以实现自己的UserDetailsService并将其插入Spring中,但它从未被调用,我总是以用户名字符串的形式获得主体。 我有我的UserDetailsService实现: 我的UserDetails实现: 并尝试通过多种方式在config(SecurityConfiguration)中设置它:

  • 在我的Spring Boot项目中,我创建了一个自定义注释,其中validator扩展了ConstraintValidator,以验证RequestBody中的一些字段。注释对于非嵌套字段可以很好地工作,但对于嵌套字段不调用验证器。 我的注释如下所示: 我的验证类: 它在这样的情况下工作正常: 但是当放在嵌套对象上时,不会调用验证器: 类在我的中的用法: 关于如何解决这个问题有什么想法吗?我已经尝