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 に以下のコードを追加します。ここでは、ApplicationContext と ActivityContext の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)アイコンをクリックしてください。デバイス選択の画面で自分のモバイル端末を選択すると、端末上に以下のような画面が表示されます。

まとめ
Contextは、Androidアプリ開発において欠かせない基礎概念です。主にApplication ContextとActivity Contextの2種類があり、用途に応じて適切な方を使い分けることが重要です。本記事のように、動的にViewを生成する場面では必ずContextが必要になるため、しっかりと理解しておきましょう。
-
ストックAndroidとは?「バニラAndroid」の特徴とメリットを徹底解説
ストックAndroidは「バニラAndroid」とも呼ばれ、Android OSの中で最もシンプルな基本バージョンを指します。Googleが設計・開発したAndroidのコアをそのまま搭載しており、最大の特徴は、キャリア(通信事業者)が独自にプリインストールするアプリが含まれていない点です。例えば、Verizonの回線で使うストックAndroid端末には、Verizon製のアプリは入っていません。多くのユーザーにとって、こうした不要なアプリ(ブロートウェア)が存在しないことは大きな魅力であり、端末を自分の思い通りにコントロールする自由を取り戻せるのです。 また、ストックAndroidは、端末
-
Android System WebView(ASW)とは?役割と更新方法を徹底解説
Android端末のアプリ一覧や、Google Playストアのアップデート通知で「Android System WebView(AndroidシステムWebView)」という名前を目にしたことがあるかもしれません。この重要なシステムアプリは、ユーザーが直接インストールしたり操作したりするものではありませんが、Android OSにとって欠かせない存在です。 お使いのAndroidのバージョンによって、Android System WebViewはさまざまな形で提供されています。どの端末でも、ASW(またはその派生版)を有効かつ最新の状態に保つ必要があります。本記事では、その理由と、このシス