如何使用recycleler视图或者recyclerview的适配器将xml解析为java类

如何使用recycleler视图或者recyclerview的适配器将xml解析为java类,第1张

概述我有一个名为Bookmark的xml文件,它位于xml文件夹中.我想将xml解析为recycleler视图,我可以在recycleler视图中显示Bookmark的列表.书签xml它不在资产中,而是在res,然后是xml文件夹.这是我的代码.xml文件夹中的Bookmark.xml<Bookmarks><Bookmarkid="1"icon="google.png"

我有一个名为Bookmark的xml文件,它位于xml文件夹中.
我想将xml解析为recycleler视图,我可以在recycleler视图中显示Bookmark的列表.
书签xml它不在资产中,而是在res,然后是xml文件夹.
这是我的代码.

xml文件夹中的Bookmark.xml

<Bookmarks>    <Bookmark ID="1" icon="Google.png" name="Google" searchUrl="https://www.Google.com" hIDden="true" />    <Bookmark ID="2" icon="youtube_new.png" name="Youtube" searchUrl="http://m.youtube.com" />    <Bookmark ID="3" icon="facebook.png" name="Facebook" nativeUrl="facebook://" searchUrl="https://m.facebook.com" />    <Bookmark ID="4" icon="twitter.png" name="Twitter" searchUrl="https://mobile.twitte.com" />    <Bookmark ID="5" icon="instagram.png" name="Instagram" nativeUrl="instagram://" searchUrl="https:instagram.com" />    <Bookmark ID="6" icon="gmail.png" name="Gmail" nativeUrl="Googlemail://" searchUrl="https://gmail.com" />    <Bookmark ID="7" icon="Google_translate.png" name="Translate" searchUrl="https://" /></Bookmarks>

这是recycleler视图的java类

 public class FragmentBookmark extends Fragment {    ArrayList<Bookmark> arrayList = new ArrayList<>();    XmlPullParserFactory pullParserFactory;    RecyclerVIEw myRecyclerVIEw;    MyAdapter myAdapter;    public voID onCreateVIEw(@Nullable Bundle savedInstanceState) {        myRecyclerVIEw = getActivity().findVIEwByID(R.ID.myRecyclerVIEw);        RecyclerVIEw.LayoutManager layoutManager = new GrIDLayoutManager(getActivity(), 1);        myRecyclerVIEw.setHasFixedSize(true);        try {            pullParserFactory = XmlPullParserFactory.newInstance();            XmlPullParser parser = pullParserFactory.newPullParser();            inputStream in_s = getActivity().getApplicationContext().getAssets().open("bookmarks.xml");            parser.setFeature(XmlPullParser.FEATURE_PROCESS_nameSPACES, false);            parser.setinput(in_s, null);            parseXML(parser);        } catch (XmlPullParserException e) {            e.printstacktrace();        } catch (IOException e) {            e.printstacktrace();        }        for (int i = 0; i < arrayList.size(); i++) {            Log.e("OUTPUT", arrayList.get(i).toString());        }        myAdapter = new MyAdapter(getActivity(), arrayList);        myRecyclerVIEw.setAdapter(myAdapter);    }    private voID parseXML(XmlPullParser parser) throws XmlPullParserException, IOException {        ArrayList<Bookmark> countrIEs = null;        int eventType = parser.getEventType();        Bookmark country = null;        while (eventType != XmlPullParser.END_document) {            String name;            name = parser.getname();            switch (eventType) {                case XmlPullParser.START_document:                    countrIEs = new ArrayList();                    break;                case XmlPullParser.START_TAG:                    break;                case XmlPullParser.END_TAG:                    if (name.equals("Bookmark")) {                        Bookmark bookmark = new Bookmark();                        bookmark.setname(parser.getAttributeValue(null, "name"));                        bookmark.setIcon(parser.getAttributeValue(null, "icon"));                        bookmark.setID(parser.getAttributeValue(null, "ID"));                        bookmark.setSearchUrl(parser.getAttributeValue(null, "searchUrl"));                        bookmark.setNativeUrl(parser.getAttributeValue(null, "nativeUrl"));                        arrayList.add(bookmark);                    }                    break;            }            eventType = parser.next();        }    }    private voID processparsing(XmlPullParser parser) throws IOException, XmlPullParserException {        int eventType = parser.getEventType();        Bookmark bookmark = null;    }    }

这是回收站视图xml

<androID.support.v7.Widget.RecyclerVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    androID:ID="@+ID/ListRecyclerVIEw"    androID:layout_height="match_parent"    androID:orIEntation="horizontal"    androID:layout_wIDth="match_parent"    androID:layout_marginBottom="8dp"    androID:layout_marginEnd="8dp"    androID:layout_marginStart="8dp"    androID:layout_margintop="8dp"    app:layout_constraintBottom_toBottomOf="parent"    app:layout_constraintEnd_toEndOf="parent"    app:layout_constraintStart_toStartOf="parent"    androID:fillVIEwport="false">    </androID.support.v7.Widget.RecyclerVIEw>

这是recyclervIEw的适配器

public class MyAdapter extends RecyclerVIEw.Adapter {    @NonNull    @OverrIDe    public RecyclerVIEw.VIEwHolder onCreateVIEwHolder(@NonNull VIEwGroup vIEwGroup, int i) {        VIEw vIEw = LayoutInflater.from(vIEwGroup.getContext()).inflate(R.layout.grID_item, vIEwGroup, false);        return new ListVIEwHolder(vIEw);    }    @OverrIDe    public voID onBindVIEwHolder(@NonNull RecyclerVIEw.VIEwHolder vIEwHolder, int i) {        ((ListVIEwHolder) vIEwHolder).bindVIEw(i);    }    @OverrIDe    public int getItemCount() {        return OurData.Title.length;    }    private class ListVIEwHolder extends RecyclerVIEw.VIEwHolder implements VIEw.OnClickListener {        private TextVIEw mItemText;        private ImageVIEw mItemImage;        public ListVIEwHolder(VIEw itemVIEw) {            super(itemVIEw);            mItemText = itemVIEw.findVIEwByID(R.ID.textVIEw);            mItemImage =  itemVIEw.findVIEwByID(R.ID.image_vIEw);            itemVIEw.setonClickListener(this);        }        public voID bindVIEw(int position) {            mItemText.setText(OurData.Title[position]);            mItemImage.setimageResource(OurData.picture[position]);        }        @OverrIDe        public voID onClick(VIEw v) {        }    }}

这是一个java类,我手动添加并在Recycler视图中工作,但我需要Bookmark xml在recycleler视图中显示

public class OurData {    public static String[] Title = new String[] {            "Bing",            "Facebook",            "Gmail",            "Translate",            "Bing",            "Facebook",            "Gmail",            "Translate"    };    public static int[] picture = new int[] {            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram,            R.drawable.instagram    };}

这是显示图像的xml和用于回收器视图的TextVIEw

<androID.support.constraint.ConstraintLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="70dp"    androID:ID="@+ID/recyclerVIEw">    <ImageVIEw        androID:ID="@+ID/image_vIEw"        androID:layout_wIDth="28dp"        androID:layout_height="27dp"        androID:layout_alignParenttop="true"        androID:layout_marginStart="8dp"        androID:layout_marginEnd="8dp"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHorizontal_bias="0.129"        app:layout_constraintStart_toStartOf="parent"        tools:ignore="MissingConstraints"        tools:layout_editor_absoluteY="16dp" />    <TextVIEw        androID:ID="@+ID/textVIEw"        androID:layout_wIDth="80dp"        androID:layout_height="23dp"        androID:layout_below="@+ID/image_vIEw"        androID:layout_marginStart="8dp"        androID:layout_marginEnd="8dp"        androID:gravity="center"        androID:text="TextVIEw"        app:layout_constraintHorizontal_bias="0.069"        app:layout_constraintStart_toStartOf="parent"        app:layout_constrainttop_toBottomOf="@+ID/image_vIEw" /></androID.support.constraint.ConstraintLayout>

解决方法:

更新2

FragmentBookmark

public class FragmentBookmark extends Fragment {    public FragmentBookmark() {        // required empty public constructor    }    private Context mContext;    ArrayList<Bookmark> arrayList = new ArrayList<>();    XmlPullParserFactory pullParserFactory;    RecyclerVIEw myRecyclerVIEw;    DataAdapter dataAdapter;    @OverrIDe    public voID onAttach(Context context) {        super.onAttach(context);        mContext = context;    }    @OverrIDe    public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,                             Bundle savedInstanceState) {        VIEw rootVIEw = inflater.inflate(R.layout.fragment_bookmark, container, false);        myRecyclerVIEw = rootVIEw.findVIEwByID(R.ID.myRecyclerVIEw);        myRecyclerVIEw.setLayoutManager(new linearlayoutmanager(mContext));        myRecyclerVIEw.setHasFixedSize(true);        dataAdapter = new DataAdapter(mContext, arrayList);        myRecyclerVIEw.setAdapter(dataAdapter);        try {            XmlPullParser xpp = getResources().getXml(R.xml.bookmarks);            while (xpp.getEventType() != XmlPullParser.END_document) {                if (xpp.getEventType() == XmlPullParser.START_TAG) {                    if (xpp.getname().equals("Bookmark")) {                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(0) + " * ");                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(1) + " * ");                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(5) + " * ");                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(2) + " * ");                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(3) + " * ");                        Log.e("MY_VALUE", " * " + xpp.getAttributeValue(4) + " * ");                        Bookmark bookmark = new Bookmark();                        bookmark.setname(xpp.getAttributeValue(0));                        int drawableResourceID = this.getResources().getIDentifIEr(xpp.getAttributeValue(1), "drawable", mContext.getPackagename());                        bookmark.setIcon(drawableResourceID);                        bookmark.setID(xpp.getAttributeValue(2));                        bookmark.setSearchUrl(xpp.getAttributeValue(3));                        bookmark.setNativeUrl(xpp.getAttributeValue(4));                        arrayList.add(bookmark);                    }                }                xpp.next();            }        } catch (XmlPullParserException e) {            e.printstacktrace();        } catch (IOException e) {            e.printstacktrace();        }        dataAdapter.notifyDataSetChanged();        return rootVIEw;    }}

layout.fragment_bookmark

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical">    <androID.support.v7.Widget.RecyclerVIEw        androID:ID="@+ID/myRecyclerVIEw"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content" /></relativeLayout>

DataAdapter

public class DataAdapter  extends RecyclerVIEw.Adapter<DataAdapter.VIEwHolder> {    private Context context;    ArrayList<Bookmark> arrayList = new ArrayList<>();    public DataAdapter(Context context, ArrayList<Bookmark> arrayList) {        this.context = context;        this.arrayList = arrayList;    }    @NonNull    @OverrIDe    public VIEwHolder onCreateVIEwHolder(@NonNull VIEwGroup parent, int i) {        VIEw vIEw=LayoutInflater.from(context).inflate(R.layout.custom_layout,parent,false);        return new VIEwHolder(vIEw);    }    @OverrIDe    public voID onBindVIEwHolder(@NonNull VIEwHolder holder, int position) {        holder.tvname.setText(arrayList.get(position).getname());        holder.tvIcon.setimageResource(arrayList.get(position).getIcon());        holder.tvID.setText(arrayList.get(position).getID());        holder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl());        holder.tvNativeUrl.setText(arrayList.get(position).getNativeUrl());    }    @OverrIDe    public int getItemCount() {        return arrayList.size();    }    public class VIEwHolder extends RecyclerVIEw.VIEwHolder {        TextVIEw tvname,tvID,tvSearchUrl,tvNativeUrl;        ImageVIEw tvIcon;        public VIEwHolder(@NonNull VIEw itemVIEw) {            super(itemVIEw);            tvname=itemVIEw.findVIEwByID(R.ID.tvname);            tvIcon=itemVIEw.findVIEwByID(R.ID.tvIcon);            tvID=itemVIEw.findVIEwByID(R.ID.tvID);            tvSearchUrl=itemVIEw.findVIEwByID(R.ID.tvSearchUrl);            tvNativeUrl=itemVIEw.findVIEwByID(R.ID.tvNativeUrl);        }    }}

layout.custom_layout

<?xml version="1.0" enCoding="utf-8"?><androID.support.v7.Widget.CardVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:orIEntation="vertical"    app:cardCornerRadius="15dp"    app:cardElevation="5dp"    app:cardUseCompatpadding="true">    <linearLayout        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:orIEntation="vertical">        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="name  : " />            <TextVIEw                androID:ID="@+ID/tvname"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="Icon  : " />            <ImageVIEw                androID:ID="@+ID/tvIcon"                androID:layout_wIDth="20dp"                androID:layout_height="20dp"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="ID  : " />            <TextVIEw                androID:ID="@+ID/tvID"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="SearchUrl  : " />            <TextVIEw                androID:ID="@+ID/tvSearchUrl"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="NativeUrl  : " />            <TextVIEw                androID:ID="@+ID/tvNativeUrl"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>    </linearLayout></androID.support.v7.Widget.CardVIEw>

Bookmark model class

public class Bookmark{    String name,ID,nativeUrl,searchUrl;    int icon;    public String getname() {        return name;    }    public voID setname(String name) {        this.name = name;    }    public String getID() {        return ID;    }    public voID setID(String ID) {        this.ID = ID;    }    public int getIcon() {        return icon;    }    public voID setIcon(int icon) {        this.icon = icon;    }    public String getNativeUrl() {        return nativeUrl;    }    public voID setNativeUrl(String nativeUrl) {        this.nativeUrl = nativeUrl;    }    public String getSearchUrl() {        return searchUrl;    }    public voID setSearchUrl(String searchUrl) {        this.searchUrl = searchUrl;    }    @OverrIDe    public String toString() {        return "Bookmark{" +                "name='" + name + '\'' +                ", icon='" + icon + '\'' +                ", ID='" + ID + '\'' +                ", nativeUrl='" + nativeUrl + '\'' +                ", searchUrl='" + searchUrl + '\'' +                '}';    }}

UPDATE

XML文件

<Bookmarks>    <Bookmark        name="Google"        hIDden="true"        icon="Google.png"        ID="1"        nativeUrl=""        searchUrl="https://www.Google.com" />    <Bookmark        name="Youtube"        hIDden=""        icon="youtube_new.png"        ID="2"        nativeUrl=""        searchUrl="http://m.youtube.com" />    <Bookmark        name="Facebook"        hIDden=""        icon="facebook.png"        ID="3"        nativeUrl="facebook://"        searchUrl="https://m.facebook.com" />    <Bookmark        name="Twitter"        hIDden=""        icon="twitter.png"        ID="4"        nativeUrl=""        searchUrl="https://mobile.twitte.com" />    <Bookmark        name="Instagram"        hIDden=""        icon="instagram.png"        ID="5"        nativeUrl="instagram://"        searchUrl="https:instagram.com" />    <Bookmark        name="Gmail"        hIDden=""        icon="gmail.png"        ID="6"        nativeUrl="Googlemail://"        searchUrl="https://gmail.com" />    <Bookmark        name="Translate"        hIDden=""        icon="Google_translate.png"        ID="7"        nativeUrl=""        searchUrl="https://" /></Bookmarks>

以下是从res / XML文件夹解析XML的代码

    try {        XmlPullParser xpp = getResources().getXml(R.xml.bookmarks);        while (xpp.getEventType() != XmlPullParser.END_document) {            if (xpp.getEventType() == XmlPullParser.START_TAG) {                if (xpp.getname().equals("Bookmark")) {                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(0) + " * ");                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(1) + " * ");                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(5) + " * ");                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(2) + " * ");                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(3) + " * ");                    Log.e("MY_VALUE", " * " + xpp.getAttributeValue(4) + " * ");                    Bookmark bookmark = new Bookmark();                    bookmark.setname(xpp.getAttributeValue(0));                    bookmark.setIcon(xpp.getAttributeValue(1));                    bookmark.setID(xpp.getAttributeValue(2));                    bookmark.setSearchUrl(xpp.getAttributeValue(3));                    bookmark.setNativeUrl(xpp.getAttributeValue(4));                    arrayList.add(bookmark);                }            }            xpp.next();        }    } catch (XmlPullParserException e) {        e.printstacktrace();    } catch (IOException e) {        e.printstacktrace();    }

我们可以使用三种类型的androID XML解析器.

> SAX解析器
> DOM解析器
> XMLPullParser

您可以使用XmlPullParserFactory来解析xml

试试这里是工作代码

MainActivity

import androID.support.v7.app.AppCompatActivity;import androID.os.Bundle;import androID.support.v7.Widget.linearlayoutmanager;import androID.support.v7.Widget.RecyclerVIEw;import androID.util.Log;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;import java.io.IOException;import java.io.inputStream;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    ArrayList<Bookmark> arrayList = new ArrayList<>();    XmlPullParserFactory pullParserFactory;    RecyclerVIEw myRecyclerVIEw;    DataAdapter dataAdapter;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        myRecyclerVIEw = findVIEwByID(R.ID.myRecyclerVIEw);        myRecyclerVIEw.setLayoutManager(new linearlayoutmanager(this));        myRecyclerVIEw.setHasFixedSize(true);        try {            pullParserFactory = XmlPullParserFactory.newInstance();            XmlPullParser parser = pullParserFactory.newPullParser();            inputStream in_s = getApplicationContext().getAssets().open("bookmark.xml");            parser.setFeature(XmlPullParser.FEATURE_PROCESS_nameSPACES, false);            parser.setinput(in_s, null);            parseXML(parser);        } catch (XmlPullParserException e) {            e.printstacktrace();        } catch (IOException e) {            e.printstacktrace();        }        for (int i = 0; i < arrayList.size(); i++) {            Log.e("OUTPUT", arrayList.get(i).toString());        }        dataAdapter = new DataAdapter(this, arrayList);        myRecyclerVIEw.setAdapter(dataAdapter);    }    private voID parseXML(XmlPullParser parser) throws XmlPullParserException, IOException {        ArrayList<Bookmark> countrIEs = null;        int eventType = parser.getEventType();        Bookmark country = null;        while (eventType != XmlPullParser.END_document) {            String name;            name = parser.getname();            switch (eventType) {                case XmlPullParser.START_document:                    countrIEs = new ArrayList();                    break;                case XmlPullParser.START_TAG:                    break;                case XmlPullParser.END_TAG:                    if (name.equals("Bookmark")) {                        Log.e("VALUE", parser.getAttributeValue(null, "name") + "");                        Log.e("VALUE", parser.getAttributeValue(null, "icon") + "");                        Log.e("VALUE", parser.getAttributeValue(null, "ID") + "");                        Log.e("VALUE", parser.getAttributeValue(null, "searchUrl") + "");                        Log.e("VALUE", parser.getAttributeValue(null, "nativeUrl") + "");                        Bookmark bookmark = new Bookmark();                        bookmark.setname(parser.getAttributeValue(null, "name"));                        bookmark.setIcon(parser.getAttributeValue(null, "icon"));                        bookmark.setID(parser.getAttributeValue(null, "ID"));                        bookmark.setSearchUrl(parser.getAttributeValue(null, "searchUrl"));                        bookmark.setNativeUrl(parser.getAttributeValue(null, "nativeUrl"));                        arrayList.add(bookmark);                    }                    break;            }            eventType = parser.next();        }    }    private voID processparsing(XmlPullParser parser) throws IOException, XmlPullParserException {        int eventType = parser.getEventType();        Bookmark bookmark = null;    }}

layout.activity_main

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:orIEntation="vertical">    <androID.support.v7.Widget.RecyclerVIEw        androID:ID="@+ID/myRecyclerVIEw"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content" /></relativeLayout>

DataAdapter

import androID.content.Context;import androID.support.annotation.NonNull;import androID.support.v7.Widget.RecyclerVIEw;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.TextVIEw;import java.util.ArrayList;public class DataAdapter  extends RecyclerVIEw.Adapter<DataAdapter.VIEwHolder> {    private Context context;    ArrayList<Bookmark> arrayList = new ArrayList<>();    public DataAdapter(Context context, ArrayList<Bookmark> arrayList) {        this.context = context;        this.arrayList = arrayList;    }    @NonNull    @OverrIDe    public VIEwHolder onCreateVIEwHolder(@NonNull VIEwGroup parent, int i) {        VIEw vIEw=LayoutInflater.from(context).inflate(R.layout.custom_layout,parent,false);        return new VIEwHolder(vIEw);    }    @OverrIDe    public voID onBindVIEwHolder(@NonNull VIEwHolder holder, int position) {        holder.tvname.setText(arrayList.get(position).getname());        holder.tvIcon.setText(arrayList.get(position).getIcon());        holder.tvID.setText(arrayList.get(position).getID());        holder.tvSearchUrl.setText(arrayList.get(position).getSearchUrl());        holder.tvNativeUrl.setText(arrayList.get(position).getNativeUrl());    }    @OverrIDe    public int getItemCount() {        return arrayList.size();    }    public class VIEwHolder extends RecyclerVIEw.VIEwHolder {        TextVIEw tvname,tvIcon,tvID,tvSearchUrl,tvNativeUrl;        public VIEwHolder(@NonNull VIEw itemVIEw) {            super(itemVIEw);            tvname=itemVIEw.findVIEwByID(R.ID.tvname);            tvIcon=itemVIEw.findVIEwByID(R.ID.tvIcon);            tvID=itemVIEw.findVIEwByID(R.ID.tvID);            tvSearchUrl=itemVIEw.findVIEwByID(R.ID.tvSearchUrl);            tvNativeUrl=itemVIEw.findVIEwByID(R.ID.tvNativeUrl);        }    }}

layout.custom_layout

<?xml version="1.0" enCoding="utf-8"?><androID.support.v7.Widget.CardVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:orIEntation="vertical"    app:cardCornerRadius="15dp"    app:cardElevation="5dp"    app:cardUseCompatpadding="true">    <linearLayout        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:orIEntation="vertical">        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="name  : " />            <TextVIEw                androID:ID="@+ID/tvname"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="Icon  : " />            <TextVIEw                androID:ID="@+ID/tvIcon"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="ID  : " />            <TextVIEw                androID:ID="@+ID/tvID"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="SearchUrl  : " />            <TextVIEw                androID:ID="@+ID/tvSearchUrl"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>        <linearLayout            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:orIEntation="horizontal">            <TextVIEw                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="NativeUrl  : " />            <TextVIEw                androID:ID="@+ID/tvNativeUrl"                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:padding="10dp"                androID:text="" />        </linearLayout>    </linearLayout></androID.support.v7.Widget.CardVIEw>

Bookmark model class

public class Bookmark{    String name,icon,ID,nativeUrl,searchUrl;    public String getname() {        return name;    }    public voID setname(String name) {        this.name = name;    }    public String getIcon() {        return icon;    }    public voID setIcon(String icon) {        this.icon = icon;    }    public String getID() {        return ID;    }    public voID setID(String ID) {        this.ID = ID;    }    public String getNativeUrl() {        return nativeUrl;    }    public voID setNativeUrl(String nativeUrl) {        this.nativeUrl = nativeUrl;    }    public String getSearchUrl() {        return searchUrl;    }    public voID setSearchUrl(String searchUrl) {        this.searchUrl = searchUrl;    }    @OverrIDe    public String toString() {        return "Bookmark{" +                "name='" + name + '\'' +                ", icon='" + icon + '\'' +                ", ID='" + ID + '\'' +                ", nativeUrl='" + nativeUrl + '\'' +                ", searchUrl='" + searchUrl + '\'' +                '}';    }}

欲了解更多信息,请查看以下帖子

> Android – XML Parser
> Android XML Parser – XMLPullParser
> How to read XML File in Java (DOM Parser)
> Java SAX Parser Example
> Parsing XML data in Android Apps
> Android XML Parsing using DOM Parser
> Android XML Parsing Tutorial
> Learning to Parse XML Data in Your Android App

OUTPUT

总结

以上是内存溢出为你收集整理的如何使用recycleler视图或者recyclerview的适配器将xml解析为java类全部内容,希望文章能够帮你解决如何使用recycleler视图或者recyclerview的适配器将xml解析为java类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1101673.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存