如何在Listview适配器线性布局中添加项目

赛义德·卡西姆·艾哈迈德(Syed Qasim Ahmed)

我知道如何填充listview,也知道如何制作自定义适配器。我想在ListView的rowLayout的线性布局内添加View。这是MyList适配器。

我想要一个在运行时创建每个项目布局的列表视图,但是我无法实现这一点。

这段代码在没有ListView的情况下可以工作,但是当我将其添加到listview内的Linearlayout时,它给了我错误。

public class KmapListAdapter extends BaseAdapter  {

    Context context;
    LayoutInflater layoutInflater;
    List<KmapModel> mOriginalValues = new ArrayList<KmapModel>();


    public KmapListAdapter(Context activity, List<KmapModel> kmapModelList) {

        this.context = activity;
        this.mOriginalValues = kmapModelList;

    }

    @Override
    public int getCount() {
if(mOriginalValues == null)
    return  0;
        return mOriginalValues.size();
    }

    @Override
    public Object getItem(int position) {

        return mOriginalValues.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    ViewHolder Holder ;

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

        KmapModel kmapModel;
        if (layoutInflater == null)
            layoutInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            Holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.rowlayout, null);
            Holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.linear_layout_matrix_1);

            convertView.setTag(Holder);

        } else
            Holder = (ViewHolder) convertView.getTag();


        kmapModel = mOriginalValues.get(position);
        Holder.linearLayout.addView(kmapModel.getLinearLayout());
        return convertView;
    }




    static class ViewHolder {
        LinearLayout linearLayout;}}

这是我的型号清单

 public List<KmapModel> ListViewOneItem( int ROWS, int COLS) {

        String[][] KmapArray = KMapMaker(ROWS, COLS);
        //  Log.v("Kmap array",""+KmapArray);
        TextView[][] KmapTextView = new TextView[KmapArray.length][KmapArray[0].length];

        int temp = 3;
        for (int i = 0; i < KmapArray.length; i++) {
            KmapModel kmapModel = new KmapModel();
            LinearLayout rowLinearLayout = makeRowLinearLayout();


            for (int j = 0; j < KmapArray[0].length; j++) {

                TextView rowTextView = makeTextView();
                rowTextView.setPadding(4, 4, 4, 4);


                rowLinearLayout.addView(rowTextView);
                KmapTextView[i][j] = rowTextView;// Add a text view in a jagged array for later use

            }
            kmapModel.setLinearLayout(rowLinearLayout);
            kmapModelList.add(kmapModel);


        }
        return  kmapModelList;
    }

现在我得到一个错误

指定的孩子已经有一个父母。您必须先在孩子的父母上调用removeView()。在这条线上

 Holder.linearLayout.addView(kmapModel.getLinearLayout());

Q1)如何解决此问题Q2)为什么会出现此问题?

感谢@pskink,他给了我一种尝试的方式,然后我上传了解决方案。

tar化

指定的孩子已经有一个父母。

不要再给孩子第二个父母了。所有的观点都来自破碎的家园。他们有一个父母。

您可以向视图添加视图,不能添加已经添加的视图。这会导致循环,并且循环是循环的。为了成功地迭代视图树,它必须是一棵树。因此,视图只有一个父视图。清除现有的布局并使用它,或者将新视图添加到布局中,或者基本上不需要在视图树的多个位置使用同一对象的任何内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在单个listview中添加两个适配器

来自分类Dev

如何在其适配器中刷新android listview

来自分类Dev

如何在回收器适配器中添加片段?

来自分类Dev

如何在recycleview适配器中设置布局可见性,我的适配器代码是

来自分类Dev

将listview适配器添加到Fragment的布局中

来自分类Dev

如何使用适配器在按钮单击上添加ListView项目

来自分类Dev

如何将项目动态添加到ListView的自定义适配器

来自分类Dev

如何从适配器更新sqlite listview项目?

来自分类Dev

如何使用自定义适配器将项目自动加载到ListView中

来自分类Dev

如何在Android列表适配器中给布局边距?

来自分类Dev

如何在基本适配器中调整自定义布局

来自分类Dev

Android:如何在回收站布局适配器中动态填充片段?

来自分类Dev

如何在由数据库游标适配器支持的Android ListView中的布局中隐藏一个视图

来自分类Dev

如何在ListView适配器中缓存自定义视图?

来自分类Dev

如何在适配器的getView的ListView中获取上下文

来自分类Dev

如何在listView适配器内的onclicklistener中获取textView文本

来自分类Dev

如何在自定义适配器中刷新ListView?

来自分类Dev

如何在ListView适配器中缓存自定义视图?

来自分类Dev

是否可以将适配器设置为线性布局?

来自分类Dev

onItemClick 不适用于适配器(线性布局)

来自分类Dev

如何动态更改适配器布局?

来自分类Dev

如何在Android中获取适配器内最后可见项目的位置

来自分类Dev

如何在我的适配器上添加EventListener?

来自分类Dev

如何从Android的Listview中删除适配器

来自分类Dev

片段的ViewPager中的Listview适配器-如何获取活动

来自分类Dev

在适配器中膨胀不同的布局

来自分类Dev

如何在同步适配器的onPerformSync方法中访问新添加的联系人?

来自分类Dev

如何在Keycloak资源中添加用于授权的HTTP方法(不带适配器)

来自分类Dev

如何在Spinner而非适配器值中添加默认值

Related 相关文章

  1. 1

    如何在单个listview中添加两个适配器

  2. 2

    如何在其适配器中刷新android listview

  3. 3

    如何在回收器适配器中添加片段?

  4. 4

    如何在recycleview适配器中设置布局可见性,我的适配器代码是

  5. 5

    将listview适配器添加到Fragment的布局中

  6. 6

    如何使用适配器在按钮单击上添加ListView项目

  7. 7

    如何将项目动态添加到ListView的自定义适配器

  8. 8

    如何从适配器更新sqlite listview项目?

  9. 9

    如何使用自定义适配器将项目自动加载到ListView中

  10. 10

    如何在Android列表适配器中给布局边距?

  11. 11

    如何在基本适配器中调整自定义布局

  12. 12

    Android:如何在回收站布局适配器中动态填充片段?

  13. 13

    如何在由数据库游标适配器支持的Android ListView中的布局中隐藏一个视图

  14. 14

    如何在ListView适配器中缓存自定义视图?

  15. 15

    如何在适配器的getView的ListView中获取上下文

  16. 16

    如何在listView适配器内的onclicklistener中获取textView文本

  17. 17

    如何在自定义适配器中刷新ListView?

  18. 18

    如何在ListView适配器中缓存自定义视图?

  19. 19

    是否可以将适配器设置为线性布局?

  20. 20

    onItemClick 不适用于适配器(线性布局)

  21. 21

    如何动态更改适配器布局?

  22. 22

    如何在Android中获取适配器内最后可见项目的位置

  23. 23

    如何在我的适配器上添加EventListener?

  24. 24

    如何从Android的Listview中删除适配器

  25. 25

    片段的ViewPager中的Listview适配器-如何获取活动

  26. 26

    在适配器中膨胀不同的布局

  27. 27

    如何在同步适配器的onPerformSync方法中访问新添加的联系人?

  28. 28

    如何在Keycloak资源中添加用于授权的HTTP方法(不带适配器)

  29. 29

    如何在Spinner而非适配器值中添加默认值

热门标签

归档