Заказать просмотр списка с элементом, который добавляется в список избранного - PullRequest
0 голосов
/ 22 мая 2019

В виде списка, я хочу добавить элемент в начало списка, когда элемент устанавливает тег «Нравится». Я имею в виду, что если пользователь добавляет элемент в список избранного, обновление основного списка просмотра отображается в верхней части списка просмотра.

У меня такой вопрос: как изменить мой список в порядке заказа по тегу?

Я читаю данные из xml в таких ресурсах:

listView = (ListView) findViewById(R.id.listview);
try {
        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(getAssets().open("info.xml"));
        DataCollection = new ArrayList<HashMap<String, String>>();

        doc.getDocumentElement().normalize();
        NodeList placeList = doc.getElementsByTagName("info");
        HashMap<String, String> map = null;
        for (int i = 0; i < placeList.getLength(); i++) {
            map = new HashMap<String, String>();
            Node firstplaceNode = placeList.item(i);
            if (firstplaceNode.getNodeType() == Node.ELEMENT_NODE) {
                Element firstplaceElement = (Element) firstplaceNode;

                NodeList idList = firstplaceElement.getElementsByTagName(KEY_ID);
                Element firstIdElement = (Element) idList.item(0);
                NodeList textIdList = firstIdElement.getChildNodes();
                map.put(KEY_ID, ((Node) textIdList.item(0)).getNodeValue().trim());

                NodeList name = firstplaceElement.getElementsByTagName(KEY_NAME);
                Element nameElement = (Element) name.item(0);
                NodeList name_ = nameElement.getChildNodes();
                map.put(KEY_NAME, ((Node) name_.item(0)).getNodeValue().trim());

                NodeList pdf = firstplaceElement.getElementsByTagName(KEY_PDF);
                Element pdfElement = (Element) pdf.item(0);
                NodeList pdf_ = pdfElement.getChildNodes();
                map.put(KEY_PDF, ((Node) pdf_.item(0)).getNodeValue().trim());

                DataCollection.add(map);
            }
        }

    PdfAdapter bindingData = new PdfAdapter(this, DataCollection);
    listView.setAdapter(bindingData);

и в своем адаптере я использую settag для добавления их в список избранного:

  fav_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (fav_btn.getTag().equals("unlike")) {


                PdfInfo.Name_Display.add(DataCollection.get(position).get(KEY_NAME));
                PdfInfo.Pdf_Show.add(DataCollection.get(position).get(KEY_PDF));
                fav_btn.setImageResource(R.drawable.like);
                fav_btn.setTag("like");
                notifyDataSetChanged();

                SharedPreferences appSharedPrefs = PreferenceManager
                        .getDefaultSharedPreferences(context.getApplicationContext());
                SharedPreferences.Editor prefsEditor = appSharedPrefs.edit();
                Gson gson = new Gson();
                String json1 = gson.toJson(PdfInfo.Name_Display);
                String json2 = gson.toJson(PdfInfo.Pdf_Show);
                prefsEditor.putString("name", json1);
                prefsEditor.putString("pdf", json2);
                prefsEditor.commit();


            } else {

                PdfInfo.Name_Display.remove(DataCollection.get(position).get(KEY_NAME));
                PdfInfo.Pdf_Show.remove(DataCollection.get(position).get(KEY_PDF));
                fav_btn.setImageResource(R.drawable.unlike);
                fav_btn.setTag("unlike");
                notifyDataSetChanged();
                SharedPreferences appSharedPrefs = PreferenceManager
                        .getDefaultSharedPreferences(context.getApplicationContext());
                SharedPreferences.Editor prefsEditor = appSharedPrefs.edit();
                Gson gson = new Gson();
                String json1 = gson.toJson(PdfInfo.Name_Display);
                String json2 = gson.toJson(PdfInfo.Pdf_Show);
                prefsEditor.putString("name", json1);
                prefsEditor.putString("pdf", json2);
                prefsEditor.commit();
            }

            bindingData = new PdfAdapter(activity, DataCollection);
            bindingData.notifyDataSetChanged();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...