GSONライブラリを使ってArrayListをStringに変換する方法【Android開発】
GSONとは
GSONはGoogleが提供するJavaライブラリで、JavaオブジェクトをJSONへ、またJSONをJavaオブジェクトへ相互に変換するために使用されます。内部ではシリアライズ(直列化)とデシリアライズ(非直列化)の仕組みに基づいて動作しています。
この記事では、GSONライブラリを使用してArrayListを文字列(String)に変換する方法を、サンプルコード付きの手順で解説します。
実装手順
ステップ1:新規プロジェクトの作成
まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成してください。
ステップ2:build.gradleに依存関係を追加
次に、build.gradleに以下のコードを追加します。
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.andy.myapplication"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}上記のコードでは、dependenciesブロック内にGSONの最新ライブラリ「gson:2.8.5」を追加しています。これにより、プロジェクト内でGSONの機能が利用可能になります。
ステップ3:レイアウトファイル(activity_main.xml)の編集
続いて、res/layout/activity_main.xmlに以下のコードを追加します。
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout 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:layout_height = "match_parent" tools:context = ".MainActivity"> <TextView android:id = "@+id/result" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Result Data" app:layout_constraintBottom_toBottomOf = "parent" app:layout_constraintLeft_toLeftOf = "parent" app:layout_constraintRight_toRightOf = "parent" app:layout_constraintTop_toTopOf = "parent" /> </android.support.constraint.ConstraintLayout>
上記のコードでは、TextViewを1つ配置しています。このTextViewには、変換後の結果データが表示されることになります。
ステップ4:MainActivity.javaの実装
最後に、src/MainActivity.javaに以下のコードを追加します。
package com.example.andy.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView result = findViewById(R.id.result);
ArrayList<String> list = new ArrayList<String>();
list.add("JAVA");
list.add("Android");
list.add("Kotlin");
list.add("C programing Language");
list.add("C plus plus");
Gson gson = new Gson();
String arrayData = gson.toJson(list);
result.setText(arrayData);
}
}このコードのポイントは、Gsonクラスのインスタンスを生成し、gson.toJson(list)メソッドを呼び出すだけでArrayListがJSON形式の文字列に変換できる点です。非常にシンプルに実装できるのがGSONの魅力です。
アプリの実行と結果確認
それでは、アプリを実行してみましょう。ここでは、実際のAndroid端末をPCに接続しているものとして説明します。Android Studioからアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。表示された選択肢から接続したモバイルデバイスを選択すると、端末の画面に結果が表示されます。

上記の出力結果のように、ArrayListのデータが文字列(JSON配列形式)として正しく表示されていることが確認できます。このように、GSONを使えば数行のコードでArrayListと文字列の相互変換が簡単に行えます。
-
【Android開発】Bitmap(ビットマップ)をDrawableに変換する方法をサンプルコード付きで解説
この記事では、Androidアプリ開発においてBitmap(ビットマップ)をDrawableに変換する方法を、実際のサンプルコードとともにステップ形式で解説します。画像の描画やカスタムビューの実装などで頻繁に必要となる処理なので、ぜひ参考にしてください。 全体の流れ 本チュートリアルでは、ボタンをタップするとリソースから取得したDrawableをBitmapに変換し、さらにそのBitmapを新しいDrawableとしてImageViewに表示するというシンプルなアプリを作成します。 ステップ1:新規プロジェクトの作成 まず、Android Studioで新しいプロジェクトを作成します。メニュー
-
【Android開発】カラー整数(int)を16進数カラーコード文字列に変換する方法
Androidアプリ開発では、色情報がint型の整数値として扱われることが多く、これを「#FF5733」のような16進数のカラーコード文字列に変換したいケースがあります。本記事では、Integer.toHexString()メソッドを使ってカラー整数を16進文字列に変換する方法を、実際のサンプルプロジェクトとともにわかりやすく解説します。変換の仕組みAndroidでは、色はARGB形式(アルファ・赤・緑・青)の32ビット整数として表現されます。そのため、-16895234のような負の値も有効なカラー整数です。Integer.toHexString(int)で16進文字列に変換した後、先頭2桁は