<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncodi"/>
我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解Android之解析XML文件三种方式(DOM,PULL,SAX)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解Android之解析XML文件三种方式(DOM,PULL,SAX)

1.xml文件代码


<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page isELIgnored="false" %>
<fqs>
<c:forEach items="${fqs}" var="fq">
      <fq name="${fq.name}">
        <content>${fq.content}</content>
        <time>${fq.time}</time>
      </fq>
  </c:forEach>
</fqs>

2.XML网页效果图

3.Android代码

1.布局文件


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_main"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="getXML"
    android:text="获取XML数据" />
  <ListView
    android:id="@+id/lv_main_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  </ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_main_pull"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="getPULL"
    android:text="获取PULL数据" />
  <ListView
    android:id="@+id/lv_mainpull_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  </ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_main_sax"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical">
  <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="getSAX"
    android:text="获取SAX数据" />
  <ListView
    android:id="@+id/lv_mainsax_list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
  </ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal">
  <TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/tv_item_listview_name"
    android:layout_weight="1"/>
  <TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/tv_item_listview_content"
    android:layout_weight="1"/>
  <TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:id="@+id/tv_item_listview_time"
    android:layout_weight="1"/>
</LinearLayout>

2.java代码

DOM解析代码


public class MainActivity extends AppCompatActivity {
  private ListView lv_main_list;
  private ProgressDialog progressDialog;
  private List<FQ> fqs = new ArrayList<>();
  private MyAdapter myadapter;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lv_main_list = (ListView) findViewById(R.id.lv_main_list);
    myadapter = new MyAdapter();
    lv_main_list.setAdapter(myadapter);
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("小青正在拼命加載中.....");
  }
  class MyAdapter extends BaseAdapter{
    @Override
    public int getCount() {
      return fqs.size();
    }
    @Override
    public Object getItem(int position) {
      return fqs.get(position);
    }
    @Override
    public long getItemId(int position) {
      return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      if(convertView==null){
        convertView=LayoutInflater.from(MainActivity.this).inflate(R.layout.item_list,null);
        ItemTag itemTag=new ItemTag();
        itemTag.tv_name= (TextView) convertView.findViewById(R.id.tv_item_listview_name);
        itemTag.tv_content= (TextView) convertView.findViewById(R.id.tv_item_listview_content);
        itemTag.tv_tiem= (TextView) convertView.findViewById(R.id.tv_item_listview_time);
        convertView.setTag(itemTag);
      }
      ItemTag itemTag= (ItemTag) convertView.getTag();
      itemTag.tv_name.setText(fqs.get(position).getName());
      itemTag.tv_content.setText(fqs.get(position).getContent());
      itemTag.tv_tiem.setText(fqs.get(position).getTime());
      return convertView;
    }
  }
  public void getXML(View view) {
    new MyTask().execute();
  }
  class MyTask extends AsyncTask {
    //获取数据前
    @Override
    protected void onPreExecute() {
      super.onPreExecute();
      progressDialog.show();
    }
    @Override
    protected Object doInBackground(Object[] params) {
      //获取网络数据
      //1.定义获取网络的数据的路径
      String path = "http://192.168.43.149:8080/dataResult.xhtml";
      //2.实例化URL
      try {
        URL url = new URL(path);
        //3.获取链接对象
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        //4.设置请求
        httpURLConnection.setRequestMethod("GET");
        //5.设置请求链接超时的时间
        httpURLConnection.setConnectTimeout(5000);
        //6.获取响应码
        int code = httpURLConnection.getResponseCode();
        if (code == 200) {
          //7.获取返回过来的数据(XML)
          InputStream is = httpURLConnection.getInputStream();
          //8.使用DOM解析XML文件
          DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();
          DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();
          Document document=documentBuilder.parse(is);
          //获取根标签
          Element root=document.getDocumentElement();
          NodeList nodeList = root.getElementsByTagName("fq");
          for (int i = 0; i < nodeList.getLength(); i++) {
            Element element = (Element) nodeList.item(i);
            //获取属性name
            String name = element.getAttribute("name");
            //获取子标签content,time
            Element elementContent = (Element) element.getElementsByTagName("content").item(0);
            String content = elementContent.getTextContent();
            Element elementTime = (Element) element.getElementsByTagName("time").item(0);
            String time = elementTime.getTextContent();
            FQ fq = new FQ(name, content, time);
            fqs.add(fq);
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
      return fqs;
    }
    //获取数据后更新UI
    @Override
    protected void onPostExecute(Object o) {
      super.onPostExecute(o);
      progressDialog.cancel();
      myadapter.notifyDataSetChanged();
    }
  }
}

PULL解析代码


public class MainPullActivity extends AppCompatActivity {
  private ListView lv_mainpull_list;
  private ProgressDialog progressDialog;
  private List<FQ> fqs = new ArrayList<>();
  private MyAdapter myadapter;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_pull);
    myadapter = new MyAdapter();
    lv_mainpull_list = (ListView) findViewById(R.id.lv_mainpull_list);
    lv_mainpull_list.setAdapter(myadapter);
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("小青正在拼命加載中.....");
  }
  class MyAdapter extends BaseAdapter {
    @Override
    public int getCount() {
      return fqs.size();
    }
    @Override
    public Object getItem(int position) {
      return fqs.get(position);
    }
    @Override
    public long getItemId(int position) {
      return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      if (convertView == null) {
        convertView = LayoutInflater.from(MainPullActivity.this).inflate(R.layout.item_list, null);
        ItemTag itemTag = new ItemTag();
        itemTag.tv_name = (TextView) convertView.findViewById(R.id.tv_item_listview_name);
        itemTag.tv_content = (TextView) convertView.findViewById(R.id.tv_item_listview_content);
        itemTag.tv_tiem = (TextView) convertView.findViewById(R.id.tv_item_listview_time);
        convertView.setTag(itemTag);
      }
      ItemTag itemTag = (ItemTag) convertView.getTag();
      itemTag.tv_name.setText(fqs.get(position).getName());
      itemTag.tv_content.setText(fqs.get(position).getContent());
      itemTag.tv_tiem.setText(fqs.get(position).getTime());
      return convertView;
    }
  }
  public void getPULL(View view) {
    new MyTask().execute();
  }
  class MyTask extends AsyncTask {
    private FQ fq;
    //获取数据前
    @Override
    protected void onPreExecute() {
      super.onPreExecute();
      progressDialog.show();
    }
    @Override
    protected Object doInBackground(Object[] params) {
      //获取网络数据
      //1.定义获取网络的数据的路径
      String path = "http://192.168.43.149:8080/dataResult.xhtml";
      //2.实例化URL
      try {
        URL url = new URL(path);
        //3.获取链接对象
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        //4.设置请求
        httpURLConnection.setRequestMethod("GET");
        //5.设置请求链接超时的时间
        httpURLConnection.setConnectTimeout(5000);
        //6.获取响应码
        int code = httpURLConnection.getResponseCode();
        if (code == 200) {
          //7.获取返回过来的数据(XML)
          InputStream is = httpURLConnection.getInputStream();
          //8.解析XML
          //使用PULL解析XML文件
          XmlPullParser pullParser= Xml.newPullParser();
          pullParser.setInput(is,"UTF-8");
          int type=pullParser.getEventType();
          while (type!=XmlPullParser.END_DOCUMENT){
            switch (type){
              case XmlPullParser.START_TAG:
                //获取开始标签名字
                String startTafName=pullParser.getName();
                 if("fq".equals(startTafName)){
                   fq = new FQ();
                   String name=pullParser.getAttributeValue(0);
                   fq.setName(name);
                 }else if ("content".equals(startTafName)){
                   String content=pullParser.nextText();
                   fq.setContent(content);
                 }else if ("time".equals(startTafName)){
                   String time=pullParser.nextText();
                   fq.setTime(time);
                 }
                break;
              case XmlPullParser.END_TAG:
                //获取接受标签的名字
                String endtagname=pullParser.getName();
                if("fq".equals(endtagname)){
                  fqs.add(fq);
                }
                break;
            }
            type=pullParser.next();
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
      return fqs;
    }
    //获取数据后更新UI
    @Override
    protected void onPostExecute(Object o) {
      super.onPostExecute(o);
      progressDialog.cancel();
      myadapter.notifyDataSetChanged();
    }
  }
}

SAX解析代码


public class MainSaxActivity extends AppCompatActivity {
  private ListView lv_mainsax_list;
  private ProgressDialog progressDialog;
  private List<FQ> fqs = new ArrayList<>();
  private MyAdapter myadapter;
  private String currentTag = null;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_sax);
    lv_mainsax_list = (ListView) findViewById(R.id.lv_mainsax_list);
    myadapter = new MyAdapter();
    lv_mainsax_list.setAdapter(myadapter);
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("小青正在拼命加載中.....");
  }
  class MyAdapter extends BaseAdapter {
    @Override
    public int getCount() {
      return fqs.size();
    }
    @Override
    public Object getItem(int position) {
      return fqs.get(position);
    }
    @Override
    public long getItemId(int position) {
      return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      if (convertView == null) {
        convertView = LayoutInflater.from(MainSaxActivity.this).inflate(R.layout.item_list, null);
        ItemTag itemTag = new ItemTag();
        itemTag.tv_name = (TextView) convertView.findViewById(R.id.tv_item_listview_name);
        itemTag.tv_content = (TextView) convertView.findViewById(R.id.tv_item_listview_content);
        itemTag.tv_tiem = (TextView) convertView.findViewById(R.id.tv_item_listview_time);
        convertView.setTag(itemTag);
      }
      ItemTag itemTag = (ItemTag) convertView.getTag();
      itemTag.tv_name.setText(fqs.get(position).getName());
      itemTag.tv_content.setText(fqs.get(position).getContent());
      itemTag.tv_tiem.setText(fqs.get(position).getTime());
      return convertView;
    }
  }
  public void getSAX(View view) {
    new MyTask().execute();
  }
  class MyTask extends AsyncTask {
    private FQ fq;
    //获取数据前
    @Override
    protected void onPreExecute() {
      super.onPreExecute();
      progressDialog.show();
    }
    @Override
    protected Object doInBackground(Object[] params) {
      //获取网络数据
      //1.定义获取网络的数据的路径
      String path = "http://192.168.43.149:8080/dataResult.xhtml";
      //2.实例化URL
      try {
        URL url = new URL(path);
        //3.获取链接对象
        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        //4.设置请求
        httpURLConnection.setRequestMethod("GET");
        //5.设置请求链接超时的时间
        httpURLConnection.setConnectTimeout(5000);
        //6.获取响应码
        int code = httpURLConnection.getResponseCode();
        if (code == 200) {
          //7.获取返回过来的数据(XML)
          InputStream is = httpURLConnection.getInputStream();
          //8.解析XML
          //使用SAX解析XML文件
          SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
          SAXParser saxParser = saxParserFactory.newSAXParser();
          saxParser.parse(is, new DefaultHandler() {
            @Override
            public void startDocument() throws SAXException {
              super.startDocument();
            }
            @Override
            public void endDocument() throws SAXException {
              super.endDocument();
            }
            @Override
            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
              super.startElement(uri, localName, qName, attributes);
              currentTag = localName;
              if ("fq".equals(localName)) {
                //实例化对象
                fq = new FQ();
                String name = attributes.getValue(0);
                fq.setName(name);
              }
            }
            @Override
            public void endElement(String uri, String localName, String qName) throws SAXException {
              super.endElement(uri, localName, qName);
              currentTag=null;
              if ("fq".equals(localName)){
                fqs.add(fq);
              }
            }
            @Override
            public void characters(char[] ch, int start, int length) throws SAXException {
              super.characters(ch, start, length);
              if ("content".equals(currentTag)) {
                String content = new String(ch, start, length);
                fq.setContent(content);
              }else if ("time".equals(currentTag)) {
                String time = new String(ch, start, length);
                fq.setTime(time);
              }
            }
          });
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
      return fqs;
    }
    //获取数据后更新UI
    @Override
    protected void onPostExecute(Object o) {
      super.onPostExecute(o);
      progressDialog.cancel();
      myadapter.notifyDataSetChanged();
    }
  }
}

实体类


public class FQ {
  private String name;
  private String content;
  private String time;
  public FQ(){}
  public FQ(String name, String time, String content) {
    this.name = name;
    this.time = time;
    this.content = content;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getContent() {
    return content;
  }
  public void setContent(String content) {
    this.content = content;
  }
  public String getTime() {
    return time;
  }
  public void setTime(String time) {
    this.time = time;
  }
}
public class ItemTag {
  public TextView tv_name;
  public TextView tv_content;
  public TextView tv_tiem;
}

配置文件添加联网权限


<!-- 添加联网的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
您可能感兴趣的文章:Android 创建与解析XML(五)——详解Dom4j方式Android开发之DOM解析xml文件的方法Android编程解析XML方法详解(SAX,DOM与PULL)Android创建与解析XML(二)——详解Dom方式Android应用中使用DOM方式解析XML格式数据的基本方法Android解析XML的三种方式SAX、Pull、DomAndroid利用SAX对XML进行增删改查操作详解Android利用Dom对XML进行增删改查操作详解


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解Android之解析XML文件三种方式(DOM,PULL,SAX)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解Android之解析XML文件三种方式(DOM,PULL,SAX)

1.xml文件代码 <%@ page language="java" contentType="text/xml; charset=UTF-8" pageEncodi
2022-06-06

Android解析XML的三种方式SAX、Pull、Dom

在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),本文对android解析xml的这三种
2022-06-06

Android之PULL、SAX、DOM解析XML

背景:解析天气预报的xml文件,在模拟器显示 解析前准备 layout目录下weather.xml需要解析的文件:raw目录下的weather1.xml20℃/30℃晴天多云上海801级26℃/32℃晴天北京983级15℃/24℃多云广州3
2022-06-06

Android编程解析XML方法详解(SAX,DOM与PULL)

本文实例讲述了Android编程解析XML方法。分享给大家供大家参考,具体如下: XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一
2022-06-06

Android创建与解析XML(三)——详解Sax方式

1. Sax概述 SAX是一种占用内存少且解析速度快的解析器,它采用的是事件启动,不需要解析完整个文档,而是按照内容顺序看文档某个部分是否符合xml语法,如果符合就触发相应的事件,所谓的事件就是些回调方法(callback),这些方法 定义
2022-06-06

详解android使用SAX解析XML文件

解析XML的方式有很多种,大家比较熟悉的可能就是DOM解析。 DOM(文件对象模型)解析:解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以根据DOM接口来操作这个树结构了。 优点:整个文档读入内存,方便操作:支持修改、删除和
2022-06-06

Android 创建与解析XML(四)——详解Pull方式

1、Pull概述 Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用于创建XML的 XmlSerializer,还提供了用来解析XML的Pull方式解析器 XmlPullParser XmlSe
2022-06-06

Android基于Pull方式解析xml的方法详解

本文实例讲述了Android基于Pull方式解析xml的方法。分享给大家供大家参考,具体如下: Pull解析和Sax解析很相似,都是轻量级的解析,在Android的内核中已经嵌入了Pull,所以我们不需要再添加第三方jar包来支持Pull。
2022-06-06

Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法。分享给大家供大家参考,具体如下: 一、在assets文件中写xml文件
2022-06-06

Android中怎么使用pull方式解析xml格式文件

这篇文章将为大家详细讲解有关Android中怎么使用pull方式解析xml格式文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体如下:
2023-05-30

Android平台基于Pull方式对XML文件解析与写入方法详解

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法。分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通
2022-06-06

Android中使用sax解析xml文件的方法

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML 语
2022-06-06

Android创建与解析XML(二)——详解Dom方式

1. Dom概述 Dom方式创建XML,应用了标准xml构造器 javax.xml.parsers.DocumentBuilder 来创建 XML 文档,需要导入以下内容javax.xml.parsers javax.xml.parsers
2022-06-06

Android中使用PULL方式解析XML文件深入介绍

一、基本介绍 Android中极力推荐xmlpull方式解析xml。 xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpul
2022-06-06

Android 使用Pull方法解析XML文件的方法

Pull解析方法给应用程序完全的控制文档该怎么样被解析。Android中对Pull方法提供了支持的API,主要是 代码如下:org.xmlpull.v1.XmlPullParser;org.xmlpull.v1.XmlPullParserF
2022-06-06

Android XML数据的三种解析方式

本篇文章包含以下内容: XML数据的Dom解析 XML数据的Sax解析 XML数据的Pull解析 Activity中使用三种解析 Sax解析与Pull解析区别三种解析方式的步骤: 1.在As
2022-06-06

android开发基础教程—三种方式实现xml文件解析

1.sax方式 代码如下: public class SaxParse{ private SAXParser parser; public SaxParse(){ try
2022-06-06

android编程之XML文件解析方法详解(附源码)

本文实例讲述了android编程之XML文件解析方法。分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CS
2022-06-06

Android 解析XML 文件的四种方法总结

java解析xml文件四种方式1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。
2022-06-06

Android编程实现XML解析与保存的三种方法详解

本文实例讲述了Android编程实现XML解析与保存的三种方法。分享给大家供大家参考,具体如下:简介在Android开发中,关于XML解析有三种方式,分别是:1. SAX 基于事件的解析器,解析速度快,占用内存少。非常适合在Android移
2023-05-30

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录