Android
 Computer >> コンピューター >  >> プログラミング >> Android

【Android】カスタムオブジェクトをSerializable(シリアライズ可能)にする方法を解説

カスタムオブジェクトをSerializableにするには?

この記事では、Androidアプリ開発において、独自に定義したカスタムクラスのオブジェクトをSerializable(シリアライズ可能)にする方法を、実際のコード例とともにステップ形式で解説します。オブジェクトをIntent経由で他の画面へ渡したり、ファイルやネットワーク越しに保存・送信したりする場合、シリアライズの仕組みは欠かせません。

ステップ1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目を入力して、新しいプロジェクトを作成しましょう。

ステップ2:レイアウトファイル(activity_main.xml)を編集する

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
    xmlns:app = "https://schemas.android.com/apk/res-auto"
    xmlns:tools = "https://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:gravity = "center"
    android:layout_height = "match_parent"
    tools:context = ".MainActivity"
    android:orientation = "vertical">
    <Button
        android:id = "@+id/parcleObject"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentTop = "true"
        android:layout_centerHorizontal = "true"
        android:layout_marginTop = "27dp"
        android:text = "Click here"/>
</LinearLayout>

上記のコードでは、シリアライズされたオブジェクトの値を表示するためのボタンを1つ配置しています。

ステップ3:MainActivity.java を実装する

src/MainActivity.java に以下のコードを追加します。

package com.example.myapplication;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    serializableObject sample;
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.parcleObject).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sample = new serializableObject("sairamkrishna Mammahe");
                Toast.makeText(MainActivity.this,sample.getName(),Toast.LENGTH_LONG).show();
            }
        });
    }
}

ボタンがクリックされると、serializableObjectのインスタンスを生成し、その名前をToastで表示する仕組みです。

ステップ4:serializableObject.java を作成する

src/serializableObject.java として、以下のクラスを作成します。

package com.example.myapplication;
import java.io.Serializable;

class serializableObject implements Serializable {
    String name;
    public serializableObject(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}

ここが重要なポイントです。java.io.Serializableインターフェースを実装するだけで、このクラスのインスタンスはシリアライズ可能になります。あとはフィールド(name)、コンストラクタ、ゲッターを定義すれば完成です。

アプリを実行して動作を確認しよう

それでは、アプリを実行してみましょう。実機のAndroidスマートフォンをPCに接続しているものとします。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。デバイスとして自分のスマートフォンを選択すると、端末に次のようなデフォルト画面が表示されます。

【Android】カスタムオブジェクトをSerializable(シリアライズ可能)にする方法を解説

続いて、画面上のボタンをタップしてみてください。以下のように、シリアライズしたオブジェクトから取得した値がToastとして表示されます。

【Android】カスタムオブジェクトをSerializable(シリアライズ可能)にする方法を解説

このように、Serializableインターフェースを実装するだけで、カスタムオブジェクトを簡単にシリアライズできることが確認できました。Parcelableとの違いやパフォーマンス面の比較についても、今後の記事で取り上げる予定です。

  1. 【Android開発】XMLスタイルでカスタムボタンを作成する方法をステップ解説

    はじめに 本記事では、Androidアプリ開発においてXMLスタイル(Drawableリソース)を使用してカスタムボタンを作成する方法を、ステップごとにわかりやすく解説します。枠線のみのボタン、グラデーションボタン、角丸ボタンの3種類のデザインを、実際のコード例とともに紹介します。 手順1:新規プロジェクトの作成 まず、Android Studioを起動し、メニューから File → New Project を選択して新しいプロジェクトを作成します。必要事項をすべて入力し、プロジェクトのセットアップを完了させてください。 手順2:レイアウトファイルの編集 次に、res/layout/act

  2. 【Android開発】ボタンを削除・非表示にする方法をわかりやすく解説

    はじめにこの記事では、Androidアプリでボタンを画面から削除する、または非表示(不可視)にする方法を、実際のサンプルコードとともに解説します。ボタンの表示・非表示を切り替えることは、UIの動的な制御において非常によく使われるテクニックです。Androidでは setVisibility() メソッドを使用することで、ボタンを簡単に非表示にしたり、再表示したりできます。それでは、具体的な手順を見ていきましょう。手順1:新しいプロジェクトを作成するAndroid Studioを起動し、メニューから「File」→「New Project」を選択して、必要な情報を入力して新しいプロジェクトを作成し