Android開発の基本

1.プロジェクトの作成
(1)AndroidStudioでプロジェクトを作成
  Android開発環境構築を参照
(2)プロジェクトフォルダ
 Projectツールウインドウで下記など、フォルダの見え方を変更できる

 ・Androidビュー:開発の必要なファイルのみを表示

 ・Projectビュー:エクスプローラーに表示されるファイルに近い表示


(3)Androidビューのフォルダの内容
 ・manifests
アプリの実行に必要な設定を記述する「AndroidManifests.xml」ファイルが格納されている。
 ・java
  Androidアプリの開発では、アプリの画面構成を.xmlファイルに、処理を.javaファイルに記述する。このうち、処理をする.javaファイルを格納する。
 ・res
上記のアプリの画面構成の.xmlファイルなどを格納する。
resフォルダ内のサブフォルダとして、
drawble:画像を格納
layout:画面構成に関わる.xmlファイルを格納
mipmap:アプリのアイコンを格納
values:アプリで表示する固定文字列(strings.xml)、画面のスタイル(styles.xml)、色構成(colors.xml)の.xmlファイルを格納する。

2.Androidアプリの開発手順
 Androidアプリはレイアウトファイル(.xmlファイル)とアクティビティファイル(.javaファイル)のペアで成り立っている。
 ①プロジェクトの作成
 ②strings.xmlファイルに表示文字列を記述
 ③レイアウトXMLファイルに画面構成を記述
 ④アクティビティなどの.javaファイルに処理を記述
 ⑤アプリを起動して、AVD(Android Virtual Device)などで動作確認する
の順で作成する。

3.ビューの作成
ビューの作成には、レイアウトとビューを使う。
・レイアウト:画面部品の配置を決める
・ビュー:画面部品そのもの
(1)レイアウト
 主に使うレイアウトとして、
 :画面部品を縦、横方向に並べて配置
 :画面部品を相対的に配置

(2)ビュー部品
 :文字列の表示
 :テキストボックス
 :ボタン
 :ラジオボタン
 :チェックボックス
 :ドロップダウンリスト
 :リスト表示
 :スライダー
 :レート値を表現
 :ON/OFFを表現できるスイッチ (3)画面部品で使う主な属性
 ①android:id
  アクティビティ内の画面部品を使うときのidを設定する  
android:id=”@+id/(名前)”  
 ②android:text
画面部品が表示されるとき、strings.xmlファイルに記述する文字列と紐づける名前を設定する
android:id=”@string/(名前)” 
 ③android:layout_width/height
  部品の幅と高さを設定する
 ④android:layout_margin/padding
部品の外側の余白と内側の余白を設定する

4.レイアウトの実装
(1)テキストビューとテキストボックス

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#A1A9BA"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvLabelInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="5dp"
        android:background="#ffffff"
        android:text="@string/tv_msg"
        android:textSize="25sp"/>

    <EditText
        android:id="@+id/etInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="25dp"
        android:layout_marginTop="5dp"
        android:background="#ffffff"
        android:inputType="text"/>
</LinearLayout>

strings.xml

<resources>
    <string name="app_name">画面部品サンプル</string>
    <string name="tv_msg">お名前を入力してください。</string>
</resources>

(2)チェックボタン

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#A1A9BA"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#df7401"
        android:orientation="horizontal">

        <CheckBox
            android:id="@+id/cbDrink"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="25dp"
            android:background="#ffffff"
            android:text="@string/cb_apple"/>

        <CheckBox
            android:id="@+id/cbFood"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ffffff"
            android:text="@string/cb_orange"/>
    </LinearLayout>
</LinearLayout>

strings.xml

<resources>
    <string name="app_name">画面部品サンプル</string>
    <string name="cb_apple">apple</string>
    <string name="cb_orange">orange</string>
</resources>

(3)ラジオボタン

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#A1A9BA"
    android:orientation="vertical">
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:background="#df7401"
        android:orientation="horizontal"
        android:paddingBottom="10dp"
        android:paddingTop="10dp">

        <RadioButton
            android:id="@+id/rbMale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:background="#ffffff"
            android:text="@string/rb_male"/>

        <RadioButton
            android:id="@+id/rbFemale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ffffff"
            android:text="@string/rb_female"/>
    </RadioGroup>
  </LinearLayout>

strings.xml

<resources>
    <string name="app_name">画面部品サンプル</string>
    <string name="rb_male">男</string>
    <string name="rb_female">女</string>
</resources>

(4)ドロップダウンリスト

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#A1A9BA"
    android:orientation="vertical">

    <Spinner
        android:id="@+id/spCurryList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:entries="@array/sp_list"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"/>

    <Button
        android:id="@+id/btSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bt_save"/>

  </LinearLayout>

strings.xml

<resources>
    <string name="app_name">画面部品サンプル</string>
    <string-array name="sp_list">
        <item>算数</item>
        <item>理科</item>
        <item>国語</item>
        <item>社会</item>
        <item>英語</item>
        <item>図工</item>
        <item>家庭</item>
    </string-array>
    <string name="bt_save">保存</string>
</resources>

(5)リストビュー

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#A1A9BA"
    android:orientation="vertical">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:entries="@array/lv_colorlist"/>
  </LinearLayout>

strings.xml

<resources>
    <string name="app_name">画面部品サンプル</string>
    <string-array name="lv_colorlist">
        <item>ホワイト</item>
        <item>レッド</item>
        <item>ホワイト</item>
        <item>イエロー</item>
        <item>グリーン</item>
        <item>ブルー</item>
        <item>ブラック</item>
    </string-array>
</resources>