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

KotlinでAndroidアプリのアセットからファイルを読み込む方法【初心者向け解説】

この記事では、Kotlinを使用してAndroidアプリのアセット(assets)フォルダからファイルを読み込み、画面に表示する方法をステップごとにわかりやすく解説します。設定ファイルやテキストデータなどをアプリに同梱したい場合に役立つ基本的なテクニックです。

手順1:新規プロジェクトを作成する

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

手順2:レイアウトファイル(activity_main.xml)を編集する

res/layout/activity_main.xml に以下のコードを追加します。ここでは、テキストを表示するTextViewと、読み込み処理を実行するButtonを配置しています。

コード例

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="100dp"
    android:layout_centerHorizontal="true"
    android:text="Tutorials Point"
    android:textAlignment="center"
    android:textColor="@android:color/holo_green_dark"
    android:textSize="32sp"
    android:textStyle="bold" />
<TextView
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:padding="24sp"
    android:textAlignment="center"
    android:textColor="@android:color/holo_purple"
    android:textStyle="bold" />
<Button
    android:id="@+id/btnReadText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerInParent="true"
    android:layout_marginBottom="30dp"
    android:text="Read text from assets"
    android:textStyle="bold" />
</RelativeLayout>

手順3:アセットフォルダとテキストファイルを作成する

プロジェクトビューで「app」を右クリックし、「New」→「Folder」→「Assets Folder」を選択してassetsフォルダを作成します。

次に、作成したassetsフォルダを右クリックし、「New」→「File」から「myText.txt」という名前のテキストファイルを作成し、表示させたい任意のテキストを入力しておきます。

手順4:MainActivity.ktを実装する

src/MainActivity.kt に以下のコードを追加します。ボタンがタップされると、assets.open()メソッドでファイルのInputStreamを取得し、その内容をバイト配列として読み込んで文字列に変換し、TextViewに表示する仕組みです。

import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import java.io.IOException
import java.io.InputStream
class MainActivity : AppCompatActivity() {
    private lateinit var button: Button
    private lateinit var textView: TextView
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        textView = findViewById(R.id.textView)
        button = findViewById(R.id.btnReadText)
        button.setOnClickListener {
            var string: String? = ""
            try {
                val inputStream: InputStream = assets.open("myText.txt")
                val size: Int = inputStream.available()
                val buffer = ByteArray(size)
                inputStream.read(buffer)
                string = String(buffer)
            } catch (e: IOException) {
                e.printStackTrace()
            }
            textView.text = string
        }
    }
}

手順5:AndroidManifest.xmlを確認する

androidManifest.xml には以下のように記述します。特別な権限は不要ですが、アクティビティが正しく登録されているか確認しておきましょう。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.q11">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリを実行して動作を確認する

それでは、実際にアプリケーションを実行してみましょう。ここでは、実機のAndroidスマートフォンをパソコンに接続しているものとして説明します。

Android Studioからアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーにある「Run」アイコンKotlinでAndroidアプリのアセットからファイルを読み込む方法【初心者向け解説】をクリックします。デバイスの選択画面が表示されたら、接続したモバイルデバイスを選択してください。実機の画面にアプリが起動し、ボタンをタップするとアセットから読み込んだテキストが表示されます。

KotlinでAndroidアプリのアセットからファイルを読み込む方法【初心者向け解説】

  1. 【Android入門】strings.xmlから値を読み取る方法を初心者向けに解説

    はじめに このチュートリアルでは、Androidアプリでstrings.xml(文字列リソースファイル)に定義した値を読み取り、画面に表示する方法を段階的に解説します。文字列をリソースファイルで一元管理することで、多言語対応や保守性の向上にもつながるため、Android開発における基本的なテクニックの一つです。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。プロジェクト名やパッケージ名、保存先などの必要な項目を入力して、新しいプロジェクトを作成しましょう。 ステップ2:strings.xmlに文字

  2. AndroidからPCへファイルを転送する3つの方法|クラウド・Bluetooth・転送アプリを徹底解説

    現代では、パソコンよりもスマートフォンを使う時間の方が圧倒的に長くなっています。そのため、写真や動画、書類などのファイルの多くは、PCではなくスマホの中に保存されているのが実情です。しかし、AndroidやiPhoneには保存できる容量に上限があり、それ以上データを増やすことができません。そこで、空き容量が豊富なPCにデータを移しておくのが賢い選択となります。 とはいえ、スマホからPCへのファイル移行は意外と手間がかかるものです。すべてのファイルやフォルダを手作業で一つずつ移していたら、膨大な時間がかかってしまいます。ご安心ください。この記事では、AndroidとPCの間でファイルを効率よ