2016-05-18 2 views
0

Я пытаюсь работать над приложением, которое анализирует файл XML в моем приложении. В основном, мое маленькое приложение пытается загрузить изображения из файла XML в ViewPagerAdapter. Поэтому, пожалуйста, мне нужна помощь либо по учебникам, либо по примерам кодов, над которыми нужно работать. файл XML выглядит следующим образом;XML-парсер для VIewPagerAdapter

<Items 

    <Item> 
    <src>http://mysite/data/cool-pictures/Cool-pictures-1.jpg</src> 
    <Name>Picture 1</Name> 
    </Item> 
    <Item> 
    <Src>http://mysite/data/cool-pictures/Cool-pictures-10.jpg</Src> 
    <Name>Picture 2</Name> 
    </Item> 
    <Item> 
    <Src>http://mysite/data/cool-pictures/Cool-pictures-11.jpg</Src> 
    <Name>Picture 3</Name> 
    </Item> 
    <Item> 
    <Src>http://mysite/data/cool-pictures/Cool-pictures-12.jpg</Src> 
    <Name>Picture 4</Name> 
    </Item> 

</Items> 

Пожалуйста, как я могу это сделать. Moreso, вот код для адаптера.

public class ViewpagerAdapter extends PagerAdapter { 
    Context context; 
    String[] carName; 
    int[] carImage; 
    LayoutInflater inflater; 

    public ViewpagerAdapter(MainActivity mainActivity, String[] carName, int[] carImage) { 
    this.context = mainActivity; 
    this.carName=carName; 
    this.carImage = carImage; 
    } 

@Override 
public int getCount() { 
    return carImage.length; 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == object; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView((View) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 

    TextView carText; 
    ImageView carView; 

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View itemView = inflater.inflate(R.layout.content_main, container,false); 
    carText = (TextView) itemView.findViewById(R.id.car_text); 
    carView = (ImageView) itemView.findViewById(R.id.car_image); 

    carText.setText(carName[position]); 
    carView.setImageResource(carImage[position]); 

    container.addView(itemView); 

    return itemView; 
} 
} 

ответ

0

Позже у меня есть ответ на проблему. То, что я сделал, было иметь класс для обработки моего XML. и код приведен ниже.

public List<ItemModel> parse(InputStream is){ 
    XmlPullParserFactory pullParserFactory; 
    try { 
     pullParserFactory = XmlPullParserFactory.newInstance(); 
     XmlPullParser parser = pullParserFactory.newPullParser(); 
     parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); 
     parser.setInput(is, null); 
     parseXMl(parser); 
    }catch (XmlPullParserException e) { 
     e.printStackTrace(); 
    } 
    System.out.print("-----Parse" + myItems); 
    return myItems; 
} 

private void parseXMl(XmlPullParser parser) { 
    int event; 
    try { 
     event = parser.getEventType(); 
     while (event != XmlPullParser.END_DOCUMENT){ 
      String name = parser.getName(); 
      switch (event){ 
       case XmlPullParser.START_TAG: 
        if (name.equalsIgnoreCase("Item")){ 
         myItem = new ItemModel(); 
        } 
        break; 
       case XmlPullParser.TEXT: 
        text = parser.getText(); 
        break; 
       case XmlPullParser.END_TAG: 
        if (name.equals("Item")){ 
         myItems.add(myItem); 
        }else if (name.equals("Name")){ 
         myItem.setName(text); 
        }else if (name.equals("Src")){ 
         myItem.setSource(text); 
        } 
        break; 
       default: 
        break; 

      } 
      event = parser.next(); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

Тогда на моем MainActivity классе, я назвал XMlHandler.

XMLHandler handler = new XMLHandler(); 
List<YourItems> myItems = handler.parse(getAssets().open("items.xml")); 

Обратите внимание, что если вы я создал папку активов и дамп мой XML там файл. Вот почему я смог использовать getAssets(). Итак, я прошел myItems в adapter, и это сработало для меня.

0

here См

Это поможет вам получить ответ на ваш вопрос.

+0

Здравствуйте, это выглядит как-то сложно, простое? – Jeremiah

+0

В чем сложность этого учебника? –

Смежные вопросы