1.3月19日学习进度
2.第一次结对作业3月27日开发进度3.第一次结对作业4月11日开发进度4.4月18日冲刺记录5.4月19日学习进度6.4月19日冲刺记录7.4月20日学习进度8.4月20日冲刺记录9.4月21日冲刺记录10.第一次结对作业4月10日开发进度11.4月23日学习进度12.4月23日冲刺记录13.4月22日冲刺记录14.4月25日冲刺记录15.4月26日冲刺记录16.4月27日学习记录17.4月28日学习记录18.4月24日冲刺记录19.4月22日学习进度20.4月30日学习进度21.5月6日学习进度22.5月8日学习进度23.5月10日学习进度24.6月4日学习进度25.5月11日学习进度26.5月12日学习进度27.5月13日学习进度28.5月15日学习进度29.5月16日学习进度30.5月17日学习进度31.5月18日学习进度32.5月19日学习进度33.5月20日学习进度34.5月21日学习进度35.5月22日学习进度36.5月23日学习进度37.5月24日学习进度38.5月25日学习进度39.5月26日学习进度40.5月27日学习进度41.5月28日学习进度42.5月29日学习进度43.5月30日学习进度44.5月31日学习进度45.6月1日学习进度46.6月2日学习进度47.6月3日学习进度48.6月5日学习进度49.6月6日学习进度50.6月7日学习进度51.6月11日学习进度52.6月12日学习进度(个人总结)53.6月14日学习进度54.6月17日学习进度55.人月神话读后感156.人月神话读后感257.人月神话读后感3一.所花时间
2h
二.代码量
50行
三.博客量
1篇
四.了解到的知识点
今天学习了android连接数据库的第二种方式:通过web中间层连接。
需要用到的工具是retrofit
首先需要引入retrofit的依赖:
在app目录下的bulid.gradle.kts的dependencies代码块中添加一句话
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
然后就是代码部分
package com.leap.homework2.util;
import android.util.Log;
import androidx.annotation.NonNull;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitUtil {
private static final String IP = "10.99.118.64";
private static final String URL ="http://"+IP+":8080" ;
public static Retrofit getRetrofit() {
//日志显示级别
HttpLoggingInterceptor.Level level= HttpLoggingInterceptor.Level.BODY;
//新建log拦截器
HttpLoggingInterceptor loggingInterceptor=new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(@NonNull String message) {
Log.d("RetrofitMessage","OkHttp====Message:"+message);
}
});
loggingInterceptor.setLevel(level);
//定制OkHttp
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
//OkHttp进行添加拦截器loggingInterceptor
httpClientBuilder.addInterceptor(loggingInterceptor);
return new Retrofit.Builder()
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClientBuilder.build())
.build();
}
}
package com.leap.homework2.api;
import com.leap.homework2.util.Result;
import com.leap.homework2.entity.*;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface TransitTracer {
@GET("/transitTracer/getAllLines")
Call<Result<List<Station>>> getAllLines();
@GET("/transitTracer/getAllStationOnLine")
Call<Result<List<Station>>> getAllStationOnLine(@Query("lineName") String lineName);
@GET("/transitTracer/getLine")
Call<Result<List<Line>>> getLine(@Query("stationName") String stationName);
@GET("/transitTracer/getShortestPath")
Call<Result<List<Station>>> getShortestPath(@Query("startStationName") String startStationName, @Query("endStationName") String endStationName);
}
TransitTracer transitTracer = RetrofitUtil.getRetrofit().create(TransitTracer.class);
transitTracer.getAllStationOnLine(lineName).enqueue(new Callback<Result<List<Station>>>() {
@Override
public void onResponse(@NonNull Call<Result<List<Station>>> call, @NonNull Response<Result<List<Station>>> response) {
assert response.body() != null; //断言语句,确保response.body() != null 条件为真。如果条件为假,则会抛出一个 AssertionError 异常.
stations = response.body().getData();
List<String> list = new ArrayList<>();
for(int i=0;i<stations.size();i++){
list.add(stations.get(i).toString());
}
ArrayAdapter<String> arrayAdapter= new ArrayAdapter<>(QueryLineActivity.this, android.R.layout.simple_list_item_1,list);
lv_QueryLine.setAdapter(arrayAdapter);
}
@Override
public void onFailure(@NonNull Call<Result<List<Station>>> call, @NonNull Throwable t) {
System.out.println("请求失败");
//返回错误信息
System.out.println(t.getMessage());
}
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端