当前位置:   article > 正文

Android:解析XML的三种方式_安卓读取xml目录的value值

安卓读取xml目录的value值

1、首先,在布局文件中写一个Button控件和用来展示数据的ListView控件。

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="获取XML"
    android:onClick="getdata"/>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lv_main_data">
    </ListView>

2、新建一个布局文件,用于listview展示数据,在这个布局文件中增加你要显示数据的TextView控件。代码如下:

 <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="dfd"
        android:id="@+id/tv_listview_one"

        />
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="dfd"
        android:id="@+id/tv_listview_two"

        />
    <TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="dfd"
    android:id="@+id/tv_listview_three"

    />

然后在MainActivity.java通过解析XML拿到数据。解析XML有三种方法,方法如下:

一、DOM解析器

      DOM(Document Object Model):是一种用于XML文档的对象模型,直接访问XML文档中所有部分。

     特点:解析速度快,一次性解析整个文档。加载大文件时候效率低。代码如下:

  1. public class MainActivity extends AppCompatActivity {
  2. private ListView lv_main_data;
  3. private ProgressDialog pd;
  4. private List<UserEntity> lists = new ArrayList<>();
  5. private MainActivity.myadapter myadapter;
  6. String currentTag=null;
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. lv_main_data = (ListView) findViewById(R.id.lv_main_data);//拿到listview的ID
  12. myadapter = new myadapter();
  13. lv_main_data.setAdapter(myadapter);
  14. pd = new ProgressDialog(this);//动画加载中
  15. pd.setMessage("locaging.....");
  16. }
  17. class myadapter extends BaseAdapter{
  18. @Override
  19. public int getCount() {
  20. return lists.size();
  21. }
  22. @Override
  23. public Object getItem(int position) {
  24. return lists.get(position);
  25. }
  26. @Override
  27. public long getItemId(int position) {
  28. return position;
  29. }
  30. @Override
  31. public View getView(int position, View convertView, ViewGroup parent) {
  32. if (convertView==null){
  33. convertView= LayoutInflater.from(MainActivity.this).inflate(R.layout.dom_listview,null);
  34. DomActivity activity=new DomActivity();
  35. activity.uname= (TextView) convertView.findViewById(R.id.tv_listview_one);
  36. activity.content= (TextView) convertView.findViewById(R.id.tv_listview_two);
  37. activity.anthour= (TextView) convertView.findViewById(R.id.tv_listview_three);
  38. convertView.setTag(activity);
  39. }
  40. DomActivity domActivity= (DomActivity) convertView.getTag();
  41. domActivity.uname.setText(lists.get(position).getUname());
  42. domActivity.content.setText(lists.get(position).getContent());
  43. domActivity.anthour.setText(lists.get(position).getAnthour());
  44. return convertView;
  45. }
  46. }
  47. //获取xml数据
  48. public void getdata(View view){
  49. new mytask().execute();
  50. pd.show();
  51. }
  52. //写一个继承AsyncTask,重写它的两个方法
  53. // 1、获取网络数据:doInBackground
  54. // 2、更新UI(数据):onPostExecute
  55. class mytask extends AsyncTask{
  56. private UserEntity userEntity;
  57. private UserEntity userEntity1;
  58. @Override
  59. protected Object doInBackground(Object[] params)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/245882
推荐阅读
相关标签
  

闽ICP备14008679号