Android 旅行规划应用开发教程|Skyscanner API 集成指南

作者:API传播员 · 2025-09-18 · 阅读时间:5分钟
本教程详细讲解如何使用Skyscanner API开发Android旅行规划应用,包括项目设置、API集成、界面构建和测试等完整开发流程。通过Retrofit库实现API调用,为开发者提供实时航班信息查询功能,帮助用户高效规划旅行行程。

一. 先决条件

在开始开发之前,请确保计算机上已安装以下工具:

  • Android Studio:用于开发和调试 Android 应用程序的 IDE。
  • Java 或 Kotlin 基础知识:本教程示例以 Java 为主。
  • API 基础知识:了解 REST API、HTTP 请求及 JSON 数据解析。

此外,您需要 注册 Skyscanner API 并获取 API Key,以便进行开发和测试。


二. 设置项目

  1. 打开 Android Studio,选择“创建新项目”。
  2. 选择 空活动(Empty Activity) 模板,将项目命名为 TravelPlanner
  3. 在项目设置中,将 最低 SDK 版本设置为 API 21,保证兼容大部分 Android 设备。
  4. 项目创建完成后,将生成基础项目结构,包括 MainActivityactivity_main.xml

三. 集成 Skyscanner API

1. 添加依赖项

在项目的 build.gradle 文件中添加 Retrofit 依赖:

implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"

同步项目以下载库文件。

2. 创建 API 接口

a. 在 app/src/main/java/your/package/name 下创建新包 api
b. 新建接口 SkyscannerService.java

public interface SkyscannerService {
    @GET("browsolutions/v1.0/{market}/{currency}/{locale}/{originPlace}/{destinationPlace}/{outboundPartialDate}/{inboundPartialDate}")
    Call<FlightResponse> getFlights(
        @Path("market") String market,
        @Path("currency") String currency,
        @Path("locale") String locale,
        @Path("originPlace") String originPlace,
        @Path("destinationPlace") String destinationPlace,
        @Path("outboundPartialDate") String outboundPartialDate,
        @Path("inboundPartialDate") String inboundPartialDate,
        @Query("apiKey") String apiKey
    );
}

说明
FlightResponse 为模型类,用于解析 Skyscanner API 返回的 JSON 数据。请根据实际 API 响应结构定义对应字段。


四. 构建应用程序界面

1. 定义布局

res/layout/activity_main.xml 中添加以下 UI 元素:

  • EditText:用于输入起点和终点。
  • Button:触发航班搜索。
  • RecyclerView:显示航班列表。

示例布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">

    <EditText
        android:id="@+id/etOrigin"
        android:hint="出发地"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <EditText
        android:id="@+id/etDestination"
        android:hint="目的地"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/btnSearch"
        android:text="搜索航班"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rvFlights"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

五. 实现数据绑定与适配器

1. 创建 RecyclerView 适配器

创建 FlightAdapter.java,用于将航班数据绑定到 RecyclerView。

2. 在 MainActivity.java 中调用 API

RecyclerView recyclerView = findViewById(R.id.rvFlights);
FlightAdapter adapter = new FlightAdapter(new ArrayList<>());
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);

Button btnSearch = findViewById(R.id.btnSearch);
btnSearch.setOnClickListener(v -> {
    String origin = ((EditText)findViewById(R.id.etOrigin)).getText().toString();
    String destination = ((EditText)findViewById(R.id.etDestination)).getText().toString();

    SkyscannerService service = RetrofitClient.getInstance().create(SkyscannerService.class);
    Call<FlightResponse> call = service.getFlights(
        "US", "USD", "en-US",
        origin, destination,
        "2025-09-15", "2025-09-20",
        "YOUR_API_KEY"
    );

    call.enqueue(new Callback<FlightResponse>() {
        @Override
        public void onResponse(Call<FlightResponse> call, Response<FlightResponse> response) {
            if(response.isSuccessful() && response.body() != null){
                adapter.updateData(response.body().getFlights());
            }
        }
        @Override
        public void onFailure(Call<FlightResponse> call, Throwable t) {
            Toast.makeText(TravelPlanner.this, "获取航班失败", Toast.LENGTH_SHORT).show();
        }
    });
});

说明
RetrofitClient 为单例 Retrofit 实例类,确保网络请求统一管理。


六. 测试应用程序

  1. 在模拟器或真机上运行应用。
  2. 输入起点和终点,以及出发/返回日期。
  3. 点击“搜索”,查看航班列表是否正确显示。

如遇问题,可通过 Logcat 调试 API 响应及数据绑定逻辑。


七. 总结与扩展

通过本教程,您已完成:

  • Android 项目创建与基础设置
  • Skyscanner API 集成与航班数据获取
  • RecyclerView 展示航班结果

后续可扩展功能:

  • 酒店和汽车租赁搜索
  • 用户行程管理与收藏
  • 多城市搜索与筛选条件

借助 Skyscanner API,您的应用将成为一个高效的旅行规划工具,为用户提供实时、精准的航班信息。


原文链接: https://reintech.io/blog/creating-travel-planning-app-android-skyscanner-api