15 -3 -1
外部 ライ ブラ リー の利 と用 作成 15第 章
続いて表示される画面では「Add No Activity」を選択し、設定を完了してく ださい(図29)。
新規モジュールの作成が完了したら「settings.grade」を開いて設定を確認し ましょう(図30)。アプリのモジュールに加えて先程作成したライブラリーのモジュー ル名が追加されていれば成功です。
図28:ライブラリー名として「MyLibrary」を設定する
図29:「Add No Activity」を選択して「Finish」する
Calculatorクラスを追加する
「Calculator」クラスは、足し算を行う「plus」メソッドを持つ単純なクラスです。
このクラスをライブラリーモジュールに追加しましょう。「mylibrary」モジュールの
「src」→「main」→「java」→「自分のパッケージ名」の上で右ボタンクリックして、
「New」→「JavaClass」を選んで「Calculator」クラスを作成します。リスト22 を参考に実装をしてください。
Calculatorクラスを使う
「Calculator」クラスの「plus」メソッドを使って得た結果をTextViewに表示 してみましょう。まず、ライブラリーを使う方(app)のモジュールのディペンデンシーを 設定する必要があります。まず「File」メニューから「Project Structure...」を選 んで、「app」モジュールの「Dependencies」タブを表示します(図31)。
ここで、右上の「+」ボタンをクリックして表示するメニューから「Module depen dency」を選びます(図32)。
図30:「settings.grade」を開いて設定を確認する
リスト22:Calculator.java(Calculatorクラスの定義)
package jp.techinstitute.t051.mylibrary;
public class Calculator {
public int plus(int a, int b) { return a + b;
} }
図31:「File」メニューから「Project Structure...」を選んで「Dependencies」タブを表示する
外部 ライ ブラ リー の利 と用 作成 15第 章
すると「Choose Modules」というダイアログが表示されるので、その中の1つしか ない選択肢「:mylibrary」を選んで「OK」をクリックします(図33)。
この結果「Project Structure」のウィンドウにも、選択した「:mylibrary」が追 加されました(図34)。
図32:「+」ボタンをクリックして
「Module dependency」を選ぶ
図33:「Choose Mod ules」では「:mylibrary」
を選択する
図34:「Project Structure」の「Dependencies」タブにも「:mylibrary」が追加された
この結果は、「app」の「build.gradle」でも確認できます(図35)。もちろん、こ のファイルを最初からこのように編集しても同じことです。
以上のように設定したら、アプリケーションの「activity̲main.xml」をリスト23の ように編集します。
アプリモジュールの「MainActivity」で使うレイアウトを次のリスト23のように 作成してください。
次にリスト24のように「MainActivity」の実装を行います。
図35:ディペンデンシーの設定結果を「build.gradle」で確認する
リスト23:activity_main.xml(「UseMyLibrary」のレイアウト)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:textSize="40sp"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
外部