美文网首页
鸿蒙第8课列表容器( 聊天表的方法)(1)

鸿蒙第8课列表容器( 聊天表的方法)(1)

作者: 游私塾白书生 | 来源:发表于2022-05-30 13:54 被阅读0次

1.建立列表子项模板文本

2.适应列表容器的模板

3.新建个包,并新建立个列表容器的类

package com.text1.myhealth.pojo;

//对象类工具包  列表子项工具类

public class Item {

private StringtextValue;

// 空参

    public Item() {

}

//有参

    public Item(String textValue) {

this.textValue = textValue;

    }

//gte和set

    public StringgetTextValue() {

return textValue;

    }

public void setTextValue(String textValue) {

this.textValue = textValue;

    }

}

4.封装一个通用大的列表容器的适配器的方法类

public class ItemProviderextends BaseItemProvider {

//        集合装所有Item对L

    private ArrayListlist;

    //页面对象

    private AbstractListslice;

//    有参构造

    public ItemProvider(ArrayList list, AbstractList slice) {

this.list = list;

        this.slice = slice;

    }

//总数据有多少个  多少个item

    @Override

    public int getCount() {

return list.size();

    }

//角标索引

//    数据角标返回数据

    @Override

    public ObjectgetItem(int i) {

return list.get(i);

    }

//    返回某一项的id  基本没啥用

    @Override

    public long getItemId(int i) {

return 0;

    }

//返回item中要加载的对象

    @Override

    public ComponentgetComponent(int i, Component component, ComponentContainer componentContainer) {

//      获取到加载页面

        DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance((Context)slice)

.parse(ResourceTable.Layout_item, null, false);

//        获取每一个item里面的数据

        Item item =list.get(i);

//        把数据加载到布局里面Text组件中去

        Text text1 = (Text) dl.findComponentById(ResourceTable.Id_itemText1);

        Text text2 = (Text) dl.findComponentById(ResourceTable.Id_itemText2);

        Image image=(Image) dl.findComponentById(ResourceTable.Id_itemImg);

        //  找到文本和图片

        text1.setText(item.getTextValue1());

        text2.setText(item.getTextValue2());

        image.setImageAndDecodeBounds(item.getImgSrc());

//    返回出来

        return dl;

    }

}

5.在主页面引入列表容器适配器对象类

public class MainAbilitySliceextends AbilitySlice {

@Override

    public void onStart(Intent intent) {

super.onStart(intent);

        super.setUIContent(ResourceTable.Layout_ability_main);

        //  找到ListContainer

        ListComponent listComponent=( ListComponent)findComponentById(ResourceTable.

Id_listcomponent);

        ArrayListlist=new ArrayList<>();

for (int i=0;i<=100;i++){

list.add(new Item("组件一"+i));

}

//        构造适配器

        ltemProvider ltemProvider=new ltemProvider(list,this);

//把适配器交给列表容器组件

listComponent.setProvider(itemprovider);

    }

相关文章

网友评论

      本文标题:鸿蒙第8课列表容器( 聊天表的方法)(1)

      本文链接:https://www.haomeiwen.com/subject/soedprtx.html