Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 17 июн 2019, 07:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 10 май 2013, 11:16 

Зарегистрирован: 23 мар 2013, 15:01
Сообщений: 7
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста, как вместо этой строчки:
Код: [ Загрузить ] [ Скрыть ]
  1. xpp.setInput(new StringReader( 
  2.         "<data><phone><company>Samsung</company></phone></data>")); 
  3.     return xpp; 

передать парсеру файл из интернета?

например "http://sait.com/file.xml".


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 26 май 2013, 14:09 

Зарегистрирован: 26 май 2013, 13:58
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Наверно как то так:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost( url );
HttpResponse response = httpclient.execute( httppost );
in = new BufferedReader ( new InputStreamReader(response.getEntity().getContent (),"utf-8"));
String inputLine = "";
StringBuilder websiteContent = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
websiteContent.append(inputLine);
websiteContent.append('\n');
}
String websiteContentFull = websiteContent.toString();
XmlPullParser prepareXpp() throws XmlPullParserException {
// получаем фабрику
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// включаем поддержку namespace (по умолчанию выключена)
factory.setNamespaceAware(true);
// создаем парсер
XmlPullParser xpp = factory.newPullParser();
// даем парсеру на вход Reader
xpp.setInput(new StringReader(websiteContentFull));


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 26 май 2013, 14:11 

Зарегистрирован: 26 май 2013, 13:58
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите пожалуйста.
Делаю все как по уроку в логах печатает вроде все как в моем файле. А записать значение( вроде такого str = xpp.getText().toString()) не получается.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 08 июн 2013, 22:51 

Зарегистрирован: 03 ноя 2012, 17:09
Сообщений: 15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
RE: START_DOCUMENT срабатывает два раза по неведомым мне причинам.
Чтобы срабатывало 1 раз после первого case не нужен оператор break.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 06 июл 2013, 23:55 

Зарегистрирован: 06 июл 2013, 23:48
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Простите, но эту строчку я не могу понять
ivan160892 писал(а):
in = new BufferedReader ( new InputStreamReader(response.getEntity().getContent (),"utf-8"));

Переменная in какого типа?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 07 июл 2013, 09:52 

Зарегистрирован: 21 мар 2013, 12:26
Сообщений: 267
Благодарил (а): 22 раз.
Поблагодарили: 19 раз.
Зачем дважды обнуляется tmp?
Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends Activity { 
  2.   final String LOG_TAG = "myLogs"; 
  3.   /** Called when the activity is first created. */ 
  4.   @Override 
  5.   public void onCreate(Bundle savedInstanceState) { 
  6.     super.onCreate(savedInstanceState); 
  7.     setContentView(R.layout.main); 
  8.     String tmp = ""; 
  9.     try { 
  10.       XmlPullParser xpp = prepareXpp(); 
  11.  
  12.       while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { 
  13.         switch (xpp.getEventType()) { 
  14.         // начало документа 
  15.         case XmlPullParser.START_DOCUMENT: 
  16.           Log.d(LOG_TAG, "START_DOCUMENT"); 
  17.           break; 
  18.         // начало тэга 
  19.         case XmlPullParser.START_TAG: 
  20.           Log.d(LOG_TAG, "START_TAG: name = " + xpp.getName() 
  21.               + ", depth = " + xpp.getDepth() + ", attrCount = " 
  22.               + xpp.getAttributeCount()); 
  23.           tmp = ""; 

_________________
Использование DDMS
Чтение и запись логов (LogCat)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 08 июл 2013, 13:54 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
=bor= писал(а):
Зачем дважды обнуляется tmp?

Первый раз пишу туда пустую строку, т.к. есть привычка не оставлять объекты равными null

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 17 июл 2013, 00:07 

Зарегистрирован: 06 июл 2013, 23:48
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Извините пожалуйста, но я все-таки вклинюсь с вопросом о парсинге xml-файла с сервера.
Копал, рыл и даже что-то похожее нашел. Но не работает. Если xml-файл лежит в локальной паке - работает. На сервере - фигня!!! :(
Вот код для prepareXpp():
Код: [ Загрузить ] [ Скрыть ]
  1. XmlPullParser prepareXpp() throws XmlPullParserException, IOException { 
  2.                 URL url = new URL( "http://levelup.accu-weather.com/widget/levelup/weather-data.asp?slat=59.678474&slon=30.461576&metric=1&LangId=25"); // ну например... 
  3.             XmlPullParserFactory parserCreator = XmlPullParserFactory.newInstance(); 
  4.             XmlPullParser xpp = parserCreator.newPullParser(); 
  5.             xpp.setInput(url.openStream(), null); 
  6.             return xpp; 
  7.           } 


Подскажите, где ошибка? Заранее благодарен...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 10 авг 2013, 12:01 

Зарегистрирован: 10 авг 2013, 03:52
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Извините за глупый вопрос. как создать main.xml для этого урока?просто в уроке нету файла main.xml


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 10 авг 2013, 12:33 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
В уроке, по-видимому, можно взять любой, пустой main.xml, т.к. никакие другие визуальные компоненты не используются.

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 19 авг 2013, 15:35 

Зарегистрирован: 19 авг 2013, 13:36
Сообщений: 7
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Хочу выделить парсинг в отдельный класс, а в Activity использовать уже метод этого класса. Код парсинга взят из урока. Но программа не запускается, а выдает ошибку.
Я думаю проблема в этой части кода:

Код: [ Загрузить ] [ Скрыть ]
  1. XmlPullParser prepareXpp() { 
  2.         return context.getResources().getXml(R.xml.data); 
  3.       } 


т.к. метод getResource был не доступен, то я определил экземпляр context класса Context, но приложение в этом случае запускается с ошибкой.

Код обоих классов:

Код: [ Загрузить ] [ Скрыть ]
  1. package com.example.example; 
  2.  
  3. import java.io.IOException; 
  4.  
  5. import org.xmlpull.v1.XmlPullParser; 
  6. import org.xmlpull.v1.XmlPullParserException; 
  7.  
  8. import android.content.Context; 
  9. import android.text.TextUtils; 
  10. import android.util.Log; 
  11.  
  12. public class Test { 
  13.      
  14.     Context context;  
  15.      
  16.     String tmp = ""; 
  17.     final String LOG_TAG = "myLogs"; 
  18.         
  19.     public void parse(){ 
  20.        try { 
  21.             
  22.           XmlPullParser xpp = prepareXpp(); 
  23.  
  24.           while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { 
  25.               switch (xpp.getEventType()) { 
  26.                   // начало документа 
  27.                   case XmlPullParser.START_DOCUMENT: 
  28.                       Log.d(LOG_TAG, "START_DOCUMENT"); 
  29.                       break; 
  30.              
  31.                   // начало тэга 
  32.                   case XmlPullParser.START_TAG: 
  33.                       Log.d(LOG_TAG, "START_TAG: name = " + xpp.getName() 
  34.                               + ", depth = " + xpp.getDepth() + ", attrCount = " 
  35.                               + xpp.getAttributeCount()); 
  36.                
  37.                       tmp = ""; 
  38.                       for (int i = 0; i < xpp.getAttributeCount(); i++) { 
  39.                           tmp = tmp + xpp.getAttributeName(i) + " = " 
  40.                                   + xpp.getAttributeValue(i) + ", "; 
  41.                       } 
  42.                        
  43.                       if (!TextUtils.isEmpty(tmp)) 
  44.                           Log.d(LOG_TAG, "Attributes: " + tmp); 
  45.                       break; 
  46.              
  47.                       // конец тэга 
  48.                   case XmlPullParser.END_TAG: 
  49.                       Log.d(LOG_TAG, "END_TAG: name = " + xpp.getName()); 
  50.                       break; 
  51.              
  52.                       // содержимое тэга 
  53.                   case XmlPullParser.TEXT: 
  54.                       Log.d(LOG_TAG, "text = " + xpp.getText()); 
  55.                       break; 
  56.  
  57.                   default: 
  58.                       break; 
  59.             } 
  60.                
  61.               // следующий элемент 
  62.               xpp.next(); 
  63.           } 
  64.            
  65.               Log.d(LOG_TAG, "END_DOCUMENT"); 
  66.  
  67.         } catch (XmlPullParserException e) { 
  68.           e.printStackTrace(); 
  69.         } catch (IOException e) { 
  70.           e.printStackTrace(); 
  71.         } 
  72.       } 
  73.  
  74.       XmlPullParser prepareXpp() { 
  75.         return context.getResources().getXml(R.xml.data); 
  76.       } 
  77.     } 




Код: [ Загрузить ] [ Скрыть ]
  1. package com.example.example; 
  2.  
  3. import android.os.Bundle; 
  4. import android.app.Activity; 
  5.  
  6. public class MainActivity extends Activity { 
  7.  
  8.     @Override 
  9.     protected void onCreate(Bundle savedInstanceState) { 
  10.         super.onCreate(savedInstanceState); 
  11.         setContentView(R.layout.activity_main); 
  12.          
  13.         Test test = new Test(); 
  14.         test.parse(); 
  15.  
  16.     } 


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 19 авг 2013, 16:11 
Аватар пользователя

Зарегистрирован: 18 окт 2012, 11:17
Сообщений: 1098
Откуда: г. Красноярск
Благодарил (а): 26 раз.
Поблагодарили: 279 раз.
В классе Test сделай конструктор куда будет передаваться контекст:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. public Test(Context context) {
  2. this.context = context;
  3. }


в Activity:
Test test = new Test(this);
т.е. контекстом будет данное активити.

п.с. Экземпляр класса назвать test это нормально (и то лучше testMyClass или чтото типа того), но называть сам класс Test не есть гуд.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 19 авг 2013, 16:32 

Зарегистрирован: 19 авг 2013, 13:36
Сообщений: 7
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
klblk писал(а):
В классе Test сделай конструктор куда будет передаваться контекст:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. public Test(Context context) {
  2. this.context = context;
  3. }


в Activity:
Test test = new Test(this);
т.е. контекстом будет данное активити.

п.с. Экземпляр класса назвать test это нормально (и то лучше testMyClass или чтото типа того), но называть сам класс Test не есть гуд.



ОК. Работает! Спасибо!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 04 сен 2013, 17:07 

Зарегистрирован: 19 авг 2013, 13:36
Сообщений: 7
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Здравствуйте! У меня снова накопились вопросы по работе с xml.
Вопрос 1. Есть xml-файл с тестом:

Код: [ Загрузить ] [ Скрыть ]
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <test> 
  3.     <testName>Название теста</testName> 
  4.     <testDescription>Описание теста</testDescription> 
  5.      
  6.     <questions> 
  7.          
  8.         <question>Вопрос 1 
  9.             <a>Ответ 1</a> 
  10.             <a>Ответ 2</a> 
  11.             <a>Ответ 3</a> 
  12.             <right>1</right> 
  13.             <src>"1.jpg"</src> 
  14.         </question> 
  15.      
  16.         <question>Вопрос 2 
  17.             <a>Ответ 1</a> 
  18.             <a>Ответ 2</a> 
  19.             <a>Ответ 3</a> 
  20.             <right>2</right> 
  21.             <src>"2.jpg"</src> 
  22.         </question> 
  23.          
  24.         <question>Вопрос 3 
  25.             <a>Ответ 1</a> 
  26.             <a>Ответ 2</a> 
  27.             <a>Ответ 3</a> 
  28.             <right>2</right> 
  29.             <src>"3.jpg"</src> 
  30.         </question> 
  31.          
  32.     </questions> 
  33. </test> 


Метод для получения вопроса реализован в отдельном классе, код метода:

Код: [ Загрузить ] [ Скрыть ]
  1. public String getQuestion(){ 
  2.         try { 
  3.             XmlPullParser xpp = prepareXpp(); 
  4.             while (!(xpp.getEventType() == XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("question"))){ 
  5.                 switch(xpp.getEventType()){ 
  6.                     case XmlPullParser.START_TAG: 
  7.                         if (xpp.getName().equalsIgnoreCase("question")){ 
  8.                             xpp.next(); 
  9.                             question = xpp.getText(); 
  10.                         } 
  11.                 } 
  12.                  
  13.                 xpp.next(); 
  14.             } 
  15.             } catch (XmlPullParserException e) { 
  16.               e.printStackTrace(); 
  17.             } catch (IOException e) { 
  18.               e.printStackTrace(); 
  19.             } 
  20.         return question; 


По задумке при нажатии на кнопку должен загружаться следующий вопрос, но каждый раз грузиться только первый.

Код: [ Загрузить ] [ Скрыть ]
  1. public void onClick(View v) {     
  2.         testName.setText(testParser.getQuestion()); //testName - это TextView 
  3.     } 


И так - как сделать чтобы загружался следующий вопрос?


Вопрос 2 - Как получить и куда(ArrayList, простой массив или еще что?) лучше сохранить ответы к текущему вопросу?

Вопрос 3 - В какую папку ресурсов лучше сохранить файлы с тестами? Предполагается что их будет много. На данный момент это папка res/xml

Вопрос 4 - вытекающий из вопроса 3. В методе OnCreate нужно получить все имеющиеся тесты, т.е. перебрать все файлы тестов, которые есть в папке ресурсов. Это будет активити выбора теста с компонентом List. т.е. каждый элемент List - это отдельный тест и при щелчке по одному из них будет запущена другая активити, которой нужно передать какой именно xml-файл с тестом был выбран, чтобы его парсить дальше. Как это можно сделать?

Заранее спасибо за любую посильную помощь!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 04 сен 2013, 22:12 

Зарегистрирован: 27 авг 2013, 13:02
Сообщений: 28
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
makandrey писал(а):
По задумке при нажатии на кнопку должен загружаться следующий вопрос, но каждый раз грузиться только первый.



1. XmlPullParser xpp = prepareXpp(); сделай глобальным/перенеси в конструктор.
при нажатии на кнопку у тебя постоянно пересоздается этот обьект и отсчет начинается с первого элемента.
хотя могу ошибаться :)
makandrey писал(а):
Вопрос 3 - В какую папку ресурсов лучше сохранить файлы с тестами? Предполагается что их будет много. На данный момент это папка res/xml

читай уроки дальше, там будет работа с файлами


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 07 сен 2013, 12:28 

Зарегистрирован: 22 ноя 2012, 18:41
Сообщений: 6
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Скажите пожалуйста, есть ли инструмент для удобного создания и сохранения xml? Допустим, если я прочитал xml-файл, а дальше хочу внести в него изменения и сохранить?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 15 сен 2013, 13:41 

Зарегистрирован: 14 сен 2013, 02:14
Сообщений: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте
почему когда я парсю из интернета xml с русским текстом, в приложении отображаются кракозябры?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 15 сен 2013, 18:20 

Зарегистрирован: 27 авг 2013, 13:02
Сообщений: 28
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.
meerz писал(а):
Здравствуйте
почему когда я парсю из интернета xml с русским текстом, в приложении отображаются кракозябры?

не та кодировка, гугли "java windows-1251 to utf-8"
ну или вместо 1251 подставь свои цифры :)
но это если я правильно понял проблему, текст на английском нормально выводится?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 16 окт 2013, 10:06 

Зарегистрирован: 16 сен 2013, 13:33
Сообщений: 4
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
За ранее прошу не кидать помидорами, так как я очень новичок. И встал собственно такой вопрос:
Есть XML который надо пропарсить такого типа:

<main_tag1>Значение1</main_tag1>
<main_tag2>Значение2</main_tag2>
<main_tag3>Значение3</main_tag3>
<main_tag4>
<tag1>Значение4</tag1>
<tag2>Значение5</tag2>
<tag3>Значение6</tag3>
</main_tag4>
<main_tag4>
<tag1>Значение7</tag1>
<tag2>Значение8</tag2>
<tag3>Значение9</tag3>
</main_tag4>
<main_tag4>
<tag1>Значение10</tag1>
<tag2>Значение11</tag2>
<tag3>Значение12</tag3>
</main_tag4>
</main_tag1>


Получить значения мне надо в элементы TextView
Делаю так:
public class MainActivity extends Activity {
TextView tV1;
TextView tV2;
TextView tV3;
TextView tV4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tV1 = (TextView)findViewById(R.id.tV1);
tV2 = (TextView)findViewById(R.id.tV2);
tV3 = (TextView)findViewById(R.id.tV3);
tV4 = (TextView)findViewById(R.id.tV4);

try{
XmlPullParser parser = getResources().getXml(R.xml.mdata);

while (parser.getEventType()!= XmlPullParser.END_DOCUMENT) {
if (parser.getEventType() == XmlPullParser.START_TAG
&& parser.getName().equals("main_tag2")) {
//
tV1.setText(parser.nextText());
}
parser.next();
if (parser.getEventType() == XmlPullParser.START_TAG
&& parser.getName().equals("tag2")) {
//
tV2.setText(parser.nextText());
}
parser.next();
if (parser.getEventType() == XmlPullParser.START_TAG
&& parser.getName().equals("tag2")) {
//
tV3.setText(parser.nextText());
}
parser.next();
if (parser.getEventType() == XmlPullParser.START_TAG
&& parser.getName().equals("tag2")) {
//
tV4.setText(parser.nextText());
}
parser.next();
}
}
catch (Throwable t) {
Toast.makeText(this,
"Ошибка при загрузке XML-документа: " + t.toString(), Toast.LENGTH_LONG)
.show();
}

Ну и ничего не выходит, в tV2 вставляет значение последнего tag2 и на этом всё(.
Если оставить только 2 TextView и обработку их, то в первый текствью парсит нормально, а во второй значение последнего.
Еще раз прошу прощение за то что мой вопрос для вас может показаться глупым, ну и а то что неумею прятать код в сойлер. Спасибо


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 79. XmlPullParser. Парсим XML
СообщениеДобавлено: 16 окт 2013, 11:05 
Аватар пользователя

Зарегистрирован: 28 сен 2013, 17:34
Сообщений: 450
Благодарил (а): 8 раз.
Поблагодарили: 110 раз.
Прятать код просто, в редакторе (нажать кнопку Редактор) ищите Geshi Syntax: XML, Java.

У Вас значение "tag2" повторяется, поэтому комп его перетирает. И в итоге там оказывается последнее значение.
Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <main_tag1>
  3.                 <main_tag1>Значение1</main_tag1>
  4.                 <main_tag2>Значение2</main_tag2>
  5.                 <main_tag3>Значение3</main_tag3>
  6.                
  7.         <main_tag4>
  8.                 <tag1>Значение4</tag1>
  9.                 <tag2>Значение5</tag2>
  10.                 <tag3>Значение6</tag3>
  11.         </main_tag4>
  12.        
  13.         <main_tag4>
  14.                 <tag1>Значение7</tag1>
  15.                 <tag2>Значение8</tag2>
  16.                 <tag3>Значение9</tag3>
  17.         </main_tag4>
  18.        
  19.         <main_tag4>
  20.                 <tag1>Значение10</tag1>
  21.                 <tag2>Значение11</tag2>
  22.                 <tag3>Значение12</tag3>
  23.         </main_tag4>   
  24. </main_tag1>
  25.  

Показываю неправильный вариант:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. import org.xmlpull.v1.XmlPullParser;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. import android.widget.Toast;
  7.  
  8. public class MainActivity extends Activity {
  9.         TextView tV1;
  10.         TextView tV2;
  11.         TextView tV3;
  12.         TextView tV4;
  13.         final String TAG ="mylog";
  14.        
  15.         @Override
  16.         protected void onCreate(Bundle savedInstanceState) {
  17.         super.onCreate(savedInstanceState);
  18.         setContentView(R.layout.main);
  19.        
  20.         tV1 = (TextView)findViewById(R.id.tV1);
  21.         tV2 = (TextView)findViewById(R.id.tV2);
  22.         tV3 = (TextView)findViewById(R.id.tV3);
  23.         tV4 = (TextView)findViewById(R.id.tV4);
  24.                
  25.         Integer a1 =0, a2=0, a3=0;
  26.        
  27.         try{
  28.         XmlPullParser parser = getResources().getXml(R.xml.data);
  29.        
  30.         while (parser.getEventType()!= XmlPullParser.END_DOCUMENT) {
  31.        
  32.                 if (parser.getEventType() == XmlPullParser.START_TAG
  33.                 && parser.getName().equals("main_tag2")) {             
  34.                         tV1.setText(parser.nextText());
  35.                 }
  36.                 //parser.next();
  37.                
  38.                 if (parser.getEventType() == XmlPullParser.START_TAG
  39.                 && parser.getName().equals("tag2")
  40.                 && a1 ==0) {           
  41.                         a1=1;
  42.                         tV2.setText(parser.nextText());
  43.                 }
  44.                 //parser.next();
  45.                
  46.                 if (parser.getEventType() == XmlPullParser.START_TAG
  47.                 && parser.getName().equals("tag2")
  48.                 && a2 ==0) {           
  49.                         a2 =1;
  50.                         tV3.setText(parser.nextText());
  51.                 }
  52.                 //parser.next();
  53.                
  54.                 if (parser.getEventType() == XmlPullParser.START_TAG
  55.                 && parser.getName().equals("tag2")
  56.                 && a3 ==0) {
  57.                         a3 =1;
  58.                         tV4.setText(parser.nextText());
  59.                 }
  60.                
  61.                 parser.next();
  62.                
  63.                
  64.                 }  // while
  65.        
  66.         }
  67.         catch (Throwable t) {
  68.                 Toast.makeText(this,
  69.                 "Ошибка при загрузке XML-документа: " + t.toString(), Toast.LENGTH_LONG)
  70.                 .show();
  71.         }
  72.        
  73.         }  // protected onCreate
  74.        
  75. }  // class
  76.  

С помощью переменных, как показано в коде, парсить не стоит.

Правильный вариант - это записать все значения "tag2" в масcив ArrayList. А из него в поля TextView.
Других вариантов не придумал, набираюсь опыта.

_________________
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB