Android|Android Studio第九课(学习打卡Day11)


作者介绍:友友们好我是乱披风锤,大二学生党一枚 作者主页:乱披风锤的个人博客主页.跳转到个人简介
我和友友们一样喜欢编辑,天天敲代码,沉迷学习,日渐消瘦。很荣幸能向大家分享我的所学,和大家一起进步。如果文章有错误,欢迎在评论区指正。那么开始今天的学习吧!
支持我:点赞+收藏??+留言

Android Studio第九课(网络编程)

  • 一、准备工作,开启网络访问权限
  • 二、导包,添加依赖
  • 三、核心代码
  • 四、运行结果
  • 总结

一、准备工作,开启网络访问权限 AndroidManifest.xml加入
android:usesCleartextTraffic="true"

如图:
Android|Android Studio第九课(学习打卡Day11)
文章图片

二、导包,添加依赖 Android|Android Studio第九课(学习打卡Day11)
文章图片

在build.gradle添加
implementation 'com.google.code.gson:gson:2.9.0'

三、核心代码
package com.hnucm.network; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SignalStrength; import android.util.Log; import android.view.View; import android.widget.TextView; import com.google.gson.Gson; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.net.HttpURLConnection; import java.net.URL; public class MainActivity extends AppCompatActivity { //网络请求得到数据解析JSON数据 @Override protected void onResume() { super.onResume(); }TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //{ "age":30,"name":"张三", "isstudent":true }textView=findViewById(R.id.TextView); //findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { //@Override //public void onClick(View view) {//解决办法->换一个线程 创建一个新线程 Thread thread=new Thread(){ @Override public void run() { super.run(); //run方法里面执行代码就是在子线程 try { URL url = new URL("http://121.4.44.56/object1\n"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); InputStream inputStream = urlConnection.getInputStream(); // 字节流 Reader reader = new InputStreamReader(inputStream); //字符流 BufferedReader bufferedReader = new BufferedReader(reader); // 缓存流 String result = ""; String temp; while ((temp = bufferedReader.readLine()) != null) { result += temp; } Log.i("MainActivity", result); //所有UI操作应该在主线程中执行 //切换到主线程String finalResult=result; runOnUiThread(new Runnable() { @Override public void run() { //一次性将JSON解析为一个对象 Gson gson=new Gson(); Student student = gson.fromJson(finalResult, Student.class); textView.setText(student.class1.classname); //object1{ "age":20,"name":"张三", "isstudent":true,"class":{"grade":"18级","classname":"计算机科学与技术"} } //object2{ "grade":"18级","classname":"计算机科学与技术","students":["张三","李四","王五"] }// object3{ "grade":"18级","classname":"计算机科学与技术","students":[ { "id":"001","age":30,"name":"张三", "isstudent":false }, { "id":"002","age":25,"name":"李四", "isstudent":true }, { "id":"003","age":26,"name":"王五", "isstudent":true } ]} //字符串 ,整型 ,浮点型 ,布尔 ,Json类型 ,数组 //try { //JSONObject jsonObject=new JSONObject(finalResult); // //JSONArray jsonArray=jsonObject.getJSONArray("students"); //for (int i=0; i

四、运行结果 Android|Android Studio第九课(学习打卡Day11)
文章图片

总结 【Android|Android Studio第九课(学习打卡Day11)】好了,那么今天的学习就到这里了。友友们觉得不错的可以给个关注,点赞或者收藏哦!感谢各位友友们的支持。以下的代码希望各位大佬们自行检验哦,毕竟亲手操作让记忆更加深刻。

    推荐阅读