lanxun1992 2016-11-17 05:37 采纳率: 46.2%
浏览 1281

Android使用pull解析xml文件 蠢萌新手 大神帮忙看下哪里出现错误

 public class MainActivity extends AppCompatActivity {
    private List<Beauty> beautyList = null;
    private ListView listView;
    private ArrayAdapter<String> adapter;
    List<String> mlist = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.listView);
        beautyList = parseXMLwithPull();
        if (beautyList != null) {
            for (int i = 0; i < beautyList.size(); i++) {
                mlist.add(beautyList.get(i).getName());
            }
        }
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mlist);
        listView.setAdapter(adapter);
    }

    private List<Beauty> parseXMLwithPull() {
        List<Beauty> mList = null;
        Beauty beauty = null;
        try {
            InputStream in = getAssets().open("beauties.xml");
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = factory.newPullParser();
            parser.setInput(in,"utf-8");
            int eventType = parser.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT) {
                String nodeName = parser.getName();
                switch (eventType) {
                    case XmlPullParser.START_DOCUMENT:{
                        mList = new ArrayList<Beauty>();
                        break;
                    }

                    case XmlPullParser.START_TAG:{
                        if(nodeName.equals("beauty")) {
                            beauty = new Beauty();
                        } else if (nodeName.equals("name")) {
                            beauty.setName(parser.nextText());
                            Log.d("MainActivity",beauty.getName());
                        } else if (nodeName.equals("age")) {
                            beauty.setAge(parser.nextText());
                        }
                        break;
                    }

                    case XmlPullParser.END_TAG: {
                        if(nodeName.equals("beauty")) {
                            mList.add(beauty);
                            beauty = null;
                        }
                        break;
                    }
                    default:
                        break;
                }
                eventType = parser.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return mList;
    }
}

Beauty为封装好的Bean类,beauties为android studio 下新建assets文件夹下的xml安装后为什么在listView中显示不出来...

  • 写回答

2条回答 默认 最新

  • devmiao 2016-11-17 06:51
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!