0
3

More than 1 year has passed since last update.

概要

数年前の新卒時代に書いていた下書き記事があったので供養です。
ここしばらくAndroid触っていなかったので、思い出すにはちょうどいいかも。

Androidアプリの開発

Androidアプリ開発の備忘録を書いていく.

環境

Android Studio 3.5(2019 年 8 月)
OS : Windows10

Android アプリ開発の概要

処理をJAVAクラスに,画面構成をXMLに記述する.
JAVAクラスをアクティビティ(Activity),xmlファイルをレイアウトファイルと呼ぶ.

プロジェクトの準備

空のアクティビティーで作成する.
イメージ872.jpg

プロジェクトの構成

プロジェクトを作成して,Run Buildが完了したら,以下のような構成になる.
image.png

中身はこんな感じ.赤く丸をつけているところが今回触るところ.
Qiita用-Android Studio 触るファイル.png

各ファイル構成

manifestsフォルダ

AndroidManifest.xml ファイルが格納されている.
アプリの実行に必要な設定を記載する.
詳しくはアプリ マニフェストの概要を参照.

例えばどんなときに使う?

例)WebViewを使うときに,ネットワークへアクセス許可を出すときとか.
ネットワークに接続する

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />

javaフォルダ

処理を行うためのファイルが格納される.
最初はMainActivityが格納されている.
このファイルにボタンクリック時などの処理を書いていく.

resフォルダ

画面構成を記述するためのファイルが格納される.

  • res/layout

    • activity_main.xmlは,画面構成のためのxmlファイル.
  • res/values

    • strings.xmlは,アプリ画面の文字列を格納しておくファイル.
      ここに書いておけば,多言語に対応させたい場合に自動的に言語を切り替えてくれるらしい.
    • activity_main.xmlに文字列を直書きしているとAndroid studio先生に怒られるので,できる限りこっちに書くようにする.

画面レイアウト作成

res/layout/activity_main.xmlを選択する.
image.png

左下に「デザイン」「テキスト」とあり,現在はデザインを選択している状態.
画面レイアウトを確認すると,画面中央に"Hello World"と書かれている.
今はいらないのでdeleteで消しておく.

ボタン追加

画面遷移用のボタンを設置する.
パレットからButtonを画面レイアウトにドラッグすると,ボタンを追加できる.
しかし,コンポーネント・ツリーを見ると,!マークで警告が出ている.
image.png

とりあえず動かしてみる

これだけでもアプリは起動できるので,とりあえずどんな感じなのか動かして確認してみる.
ボタンを中央に配置したつもりが,画面左上に配置されている...
image.png

image.png

制約の警告メッセージを見てみる.
This view is not constrained. It only has designtime positions, so it will jump to (0,0) at runtime unless you add the constraints The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as layout_editor_absoluteX). These attributes are not applied at runtime, so if you push your layout on a device, the widgets may appear in a different location than shown in the editor. To fix this, make sure a widget has both horizontal and vertical constraints by dragging from the edge connections. Issue id: MissingConstraints

Google翻訳
このビューには制約がありません。 設計時の位置しかないため、制約を追加しない限り、実行時に(0,0)にジャンプします 。 これらの属性は実行時に適用されないため、デバイスにレイアウトをプッシュすると、ウィジェットはエディターに表示される場所とは異なる場所に表示される場合があります。 これを修正するには、エッジ接続からドラッグして、ウィジェットに水平および垂直の両方の制約があることを確認します。

制約を追加しないと強制的に(0,0)に飛ばされるみたい.
解像度が違っても同じようにレイアウトを配置するための制約なのだろうか?
公式ドキュメント:ConstraintLayout

結局どうする

Not horizontally constrained.
Not vertically constrained.

「水平方向に制約されていません。垂直方向に制約されていません。」
警告文に従い,水平方向と垂直方向の制約を追加してみる.

  1. 属性をいじる方法
    Android開発-ボタン制約.gif

  2. レイアウトをポチポチする方法
    Android開発-ボタン制約2.gif

ちゃんと画面中央にボタンが配置された.
image.png

@string resource

まだ警告メッセージがあったので確認.
image.png

xmlに直接文字列を書き込んでいるのが問題っぽい.
android:text="Button"って書いてるところが問題.

activity_main.xmlのテキスト
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

strings.xmlに文字列を格納してそれを呼び出す

  1. values/string.xmlを開く
  2. エディターで開くを押下,その後"+"ボタンを押下し,keyと値(文字列)を入力する.
  3. activity_main.xmlのButtonのテキストに,2.で追加したkeyと値があるので,選択する.
  4. 警告メッセージが消える

Android開発-stringXml.gif

activity_main.xmlはどうなった
android:text="Button" ←これが
android:text="@string/next" ←こうなった

終わりに

  • .gifで動画残しておくと操作分かりやすくて良いと思いました。過去の自分頑張ってた。
  • 最新のAndroid Studio環境でJetpackComposeやりたい。
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3