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

Androidのコンテキスト(Context)とは何か?初心者にもわかる基本と使い方を実例付きで解説

コンテキストとは何か

Context(コンテキスト)とは、アプリケーションやオブジェクトの「現在の状態」を表現するものです。新しく生成されたオブジェクトに対して、「これまでアプリ内で何が起きていたのか」を理解させるための情報源となります。

実務では、プログラムの別の部分(Activityやパッケージ・アプリケーション全体など)に関する情報を取得するために呼び出されるのが一般的です。たとえば、動的にViewを生成する際には、その環境情報を取得するためにContextを渡す必要があります。

この記事では、AndroidのTextViewにコンテキストを渡して表示させる方法を、サンプルコードとともに段階的に解説していきます。

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

Android Studioを開き、メニューから File ⇒ New Project を選択して、必要な項目をすべて入力し、新しいプロジェクトを作成してください。

ステップ2:レイアウトファイルを編集する

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:id="@+id/linearLayout"
    android:orientation="vertical"
    android:padding="16sp"
    tools:context=".MainActivity">
</LinearLayout>

ステップ3:MainActivity.java を編集する

src/MainActivity.java に以下のコードを追加します。ここでは、ApplicationContextActivityContext の2種類のコンテキストを使ってTextViewを動的に生成しています。

import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout linearLayout = findViewById(R.id.linearLayout);
        TextView textViewContext = new TextView(getApplicationContext());
        textViewContext.setTextSize(30);
        textViewContext.setText("Application Context");
        textViewContext.setTextColor(Color.RED);
        TextView textViewActivityContext = new TextView(this);
        textViewActivityContext.setTextSize(30);
        textViewActivityContext.setText("Activity Context");
        linearLayout.addView(textViewContext);
        linearLayout.addView(textViewActivityContext);
    }
}

ステップ4:マニフェストファイルを編集する

androidManifest.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <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スマートフォンがPCに接続されているものとして説明します。

Android Studioでプロジェクト内のいずれかのActivityファイルを開き、ツールバーにある実行(Run)アイコンをクリックしてください。デバイス選択の画面で自分のモバイル端末を選択すると、端末上に以下のような画面が表示されます。

Androidのコンテキスト(Context)とは何か?初心者にもわかる基本と使い方を実例付きで解説

まとめ

Contextは、Androidアプリ開発において欠かせない基礎概念です。主にApplication ContextActivity Contextの2種類があり、用途に応じて適切な方を使い分けることが重要です。本記事のように、動的にViewを生成する場面では必ずContextが必要になるため、しっかりと理解しておきましょう。

  1. ストックAndroidとは?「バニラAndroid」の特徴とメリットを徹底解説

    ストックAndroidは「バニラAndroid」とも呼ばれ、Android OSの中で最もシンプルな基本バージョンを指します。Googleが設計・開発したAndroidのコアをそのまま搭載しており、最大の特徴は、キャリア(通信事業者)が独自にプリインストールするアプリが含まれていない点です。例えば、Verizonの回線で使うストックAndroid端末には、Verizon製のアプリは入っていません。多くのユーザーにとって、こうした不要なアプリ(ブロートウェア)が存在しないことは大きな魅力であり、端末を自分の思い通りにコントロールする自由を取り戻せるのです。 また、ストックAndroidは、端末

  2. Android System WebView(ASW)とは?役割と更新方法を徹底解説

    Android端末のアプリ一覧や、Google Playストアのアップデート通知で「Android System WebView(AndroidシステムWebView)」という名前を目にしたことがあるかもしれません。この重要なシステムアプリは、ユーザーが直接インストールしたり操作したりするものではありませんが、Android OSにとって欠かせない存在です。 お使いのAndroidのバージョンによって、Android System WebViewはさまざまな形で提供されています。どの端末でも、ASW(またはその派生版)を有効かつ最新の状態に保つ必要があります。本記事では、その理由と、このシス