В виде списка, я хочу добавить элемент в начало списка, когда элемент устанавливает тег «Нравится». Я имею в виду, что если пользователь добавляет элемент в список избранного, обновление основного списка просмотра отображается в верхней части списка просмотра.
У меня такой вопрос: как изменить мой список в порядке заказа по тегу?
Я читаю данные из 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();
}