Форум программистов, компьютерный форум CyberForum.ru

Не парсит xml исходя из атрибутов тега - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Альтернатива iscroll http://www.cyberforum.ru/android-dev/thread957370.html
Существует ли другая библиотека идентичная этой?
Android Установил Android SDK и сделал все что нужно, никак не могу создать первый проект Установил Android SDK и сделал все что нужно, никак не могу создать первый проект Скриншот проблемы http://www.cyberforum.ru/android-dev/thread957345.html
Не могу создать Проекть Android
Как только я нажимаю next выводить такое окно ((( нажимаю Install/Upgrade и Check Again ноль реакций
Переход на другой layout через button Android
Добрый вечер, подскажите пожалуйста: мне нужно, чтобы при нажатии кнопки программа перешла к другому "окну", т.е., сначала были в меню, потом пошли по пунктам меню -- как это реализовать? Правильно ли я поняла: для кнопки нужно написать событие, чтобы она переходила на другой layout? Или как?
Android Handler, поток не останавливается http://www.cyberforum.ru/android-dev/thread957273.html
Добрый вечер. Не могу остановить таймер, при переходе на другую Activity. Возможно ли это вообще? Code: mport android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler;
Android ProgressBar в виде фигуры человечка Здравствуйте. Подскажите как реализовать такой progressbar. Спасибо. подробнее

Показать сообщение отдельно
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1

Не парсит xml исходя из атрибутов тега - Android

18.09.2013, 21:51. Просмотров 525. Ответов 1
Метки (Все метки)

Парсю xml, нужно спасить документ исходя из тегов, но нужно парсить так, чтобы выводились только те теги, атрибуты которых удовлетворяют определенному условию. Может кто-нибудь подскажет другой альтернативный вариант.
Вот основной код программы(если нужно, предоставлю код классов XMLParser и SingleMenuItemActivity):

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.example.androidprojectforxmlpurs;
 
import java.util.ArrayList;
import java.util.HashMap;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
 
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
 
public class MainActivity extends ListActivity {
 
    static final String URL = "http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml";
    
    static final String KEY_ITEM = "item"; 
    static final String KEY_COST = "name";
    static final String KEY_DESC = "website";
    String attr;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
 
        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element
 
        NodeList nl = doc.getElementsByTagName("item");
        
        NodeList n2 = doc.getElementsByTagName("website");
        
        
        
        // looping through all item nodes <item>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            //Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            //map.put(KEY_ID, parser.getValue(e, KEY_ID));
            //map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
            int n  = 0;
            int length = n2.getLength();
            for (int j = 0; j < length; j++)
            {
                 
                Element terrif = (Element) n2.item(j);
                 
 
                 String name = terrif.getAttribute("category");
                 //initialValues.put(TRAILER_TITLE,name);
                 //Log.d("myLogs", "name = " + name);
                 
                 if(name.equals("android")) {
                     Element e = (Element) nl.item(i);
                     Log.d("myLogs", "name = " + name);
                
                     map.put(KEY_COST, "Rs." + parser.getValue(e, KEY_COST));
                     map.put(KEY_DESC, parser.getValue(e, KEY_DESC));
                     Log.d("myLogs", "n = " + n);
                     // adding HashList to ArrayList
                     menuItems.add(map);
                     // and so on for other attributes...
                 }
            }
            
        }
 
        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item,
                new String[] { KEY_DESC, KEY_COST }, new int[] {
                        R.id.desciption, R.id.cost });
 
        setListAdapter(adapter);
 
        // selecting single ListView item
        ListView lv = getListView();
 
        lv.setOnItemClickListener(new OnItemClickListener() {
 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String cost = ((TextView) view.findViewById(R.id.cost)).getText().toString();
                String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString();
                
                // Starting new intent
                Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class);
                in.putExtra(KEY_COST, cost);
                in.putExtra(KEY_DESC, description);
                startActivity(in);
 
            }
        });
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru