【Java转Android】42,androidwifi开发教程

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import org.xml.sax.InputSource;

import org.xml.sax.SAXException;

import org.xml.sax.XMLReader;

import org.xmlpull.v1.XmlPullParser;

import org.xmlpull.v1.XmlPullParserException;

import org.xmlpull.v1.XmlPullParserFactory;

import java.io.IOException;

import java.io.StringReader;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParserFactory;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

Button button;

TextView textView;

private static final String TAG = “MainActivity”;

//https://raw.githubusercontent.com/AY-Format/appImages/master/other/app.xml

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = findViewById(R.id.btn_get);

textView = findViewById(R.id.text);

button.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_get:

getData();

break;

default:

break;

}

}

private void getData(){

new Thread(new Runnable() {

@Override

public void run() {

try {

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder().url(“https://raw.githubusercontent.com/AY-Format/appImages/master/other/app.xml”).build();

Response response = client.newCall(request).execute();

// show(response.body().string());

// parseXMLWithPull(response.body().string());

parseXMlWithSAX(response.body().string());

} catch (Exception e) {

e.printStackTrace();

}

}

}).start();

}

private void parseXMlWithSAX(String xmlData) throws ParserConfigurationException, SAXException, IOException {

SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();

XMLReader xmlReader = saxParserFactory.newSAXParser().getXMLReader();

ContentHandler contentHandler = new ContentHandler();

xmlReader.setContentHandler(contentHandler);

xmlReader.parse(new InputSource(new StringReader(xmlData)));

}

private void parseXMLWithPull(String xmlData) {

try {

XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory.newInstance();

XmlPullParser xmlPullParser = xmlPullParserFactory.newPullParser();

xmlPullParser.setInput(new StringReader(xmlData));

int eventType = xmlPullParser.getEventType();

Log.d(TAG, "parseXMLWithPull: "+eventType);

String id = “”;

String name = “”;

String version = “”;

while (eventType != xmlPullParser.END_DOCUMENT) {

String nodeName = xmlPullParser.getName();

switch (eventType) {

case XmlPullParser.START_TAG:

if (“id”.equals(nodeName)) {

id = xmlPullParser.nextText();

} else if (“name”.equals(nodeName)) {

name = xmlPullParser.nextText();

} else if (“version”.equals(nodeName)) {

version = xmlPullParser.nextText();

}

break;

case XmlPullParser.END_TAG:

if (“app”.equals(nodeName)){

Log.d(TAG, "parseXMLWithPull: id is "+id);

Log.d(TAG, "parseXMLWithPull: name is "+name);

Log.d(TAG, "parseXMLWithPull: version is "+version);

}

break;

}

eventType = xmlPullParser.next();

}

} catch (XmlPullParserException e) {

e.printStackTrace();

小结

有了这么多优秀的开发工具,可以做出更高质量的Android应用。

当然了,“打铁还需自身硬”,想要写出优秀的代码,最重要的一点还是自身的技术水平,不然用再好的工具也不能发挥出它的全部实力。

在这里我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

如果你有需要的话,可以点击这里领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值