2015-01-01から1年間の記事一覧
サンプル概要 Activityは二つのFragment 1. BookListFragment - 本リストを表示する 2. BookDetailFragment - 本の詳細を表示する を含み、本をクリックした際にその詳細が表示される。 作成手順 ① BookContent(Bookモデル含む)を作成する ② BookDetailFra…
FragmentはAndroid3.0から導入した新しいAPIである。 Fragmentは言葉の通り断片の意味でActivityの断片である。 目的 タブレットの出現により画面が大きくなり、 スマホより多くの部品を一つの画面に配置できるようになったからのである。 Fragmentの特性 Fr…
Andoridはアプリ起動時には 1. Taskを生成 2. アプリの入り口Activity起動(AdnroidManifest.xmlのMAIN指定されたもの) AndroidはTaskについてAPIを提供してないため、 開発者はTaskのアクセスすることができなく、 ただActivityのgetTaskId()メソッドで所在…
MainActivity.java package com.example.liguofeng.responsefromactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android…
MainActivity.java package com.example.liguofeng.requestdatatoactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import androi…
MainActivity.java package com.example.liguofeng.startandfinishactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import andro…
①LauncherActivity継承クラスをつくる MainActivity.java package com.example.liguofeng.launcheractivitytest;import android.app.ExpandableListActivity;import android.app.LauncherActivity;import android.content.Intent;import android.preference.…
ActivitiyはWebアプリにおいてのServletと似ている。 Webアプリにおいて複数のServletが存在し、 Servlet(JSPの本質もServlet)は主にユーザと情報のやり取りを行い、情報を表示する。 Activityは いつインスタンス生成されるか、 Activityのメソッドはいつ呼…
サブスレッドがUI更新できないため、Androidが提供しているソリューション。 1. Handler 2. Activity.runOnUiThread(Runnable) 3. View.post(Runnable) 4. View.post(Runnable, long) Handler以外は少し実装が煩雑である(と聞いた・・) AsyncTaskは簡易方法…
Handlerが動作するために必要なコンポーネント Message - Handlerが送受信&処理する対象 Looper - loopメソッドでMessageQueueのメッセージを取得し、Handlerにメッセージを渡す - loopメソッドは無限ループ - スレッド毎に一つのみのLooper対象をもつ。 - …
パフォーマンス面の考慮でAndroidのUI操作はスレッドセーフではない。 これによって複数のスレッドでUI操作が行われるとスレッドセーフの問題が発生する。 これを解決するためにAndroidは一つのルールを決めてある。 「UIスレッドのみActivity内のUIを変更で…
システム設定情報変更の検知は ①onConfigurationChangedメソッドをOverrideする ②AndroidManifest.xmlのActivityのandroid:configChanges属性を設定する 属性値は(脱字あるかも) mcc,mnc,locale,touchscreen,keyboard,keyboardHidden, navigation,orientit…
Configurationクラスはデバイスの設定(ユーザ毎の設定、システム設定を含む)情報を表している。 Activity内では、下記方法でシステムのConfigurationオブジェクトを取得できる。 Configuration config = getResource().getConfiguration(); サンプルコード…
① Viewを継承してコンポーネントを作成 MainActivity.java package com.example.liguofeng.followmeevent;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.uti…
① タグにリスナー設定 activity_main.java <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </linearlayout>
多くのリスナーは一度だけ使われることが多いので、匿名型が相応しいのだ。事実上、現在最も使われる方式である。*Layoutは省略。 MainActivity.java package com.example.liguofeng.anonymouslistner;import android.support.v7.app.AppCompatActivity;imp…
①ActivityがListnerを継承し②メソッドをオーバライドするこの方法のデメリット ① Activityは画面初期化の役割が多いが、リスナーを作るのはよくないな。② そもそもActivityがListnerのインタフェースを実装するのがおかしいな。*Layoutは省略。 MainActivit…
①外部クラスでリスナーを生成し②リスナーをViewに登録する。一般的には外部クラスでリスナー生成はしない。 理由としては主に①イベントは特定のGUI画面に所属するものなので、外部クラスにするのは集約面でよくない②外部クラスでリスナーを生成すると自由にE…
①内部クラスでリスナーを生成し②リスナーをViewに登録する。*Layoutは省略。 MainActivity.java package com.example.liguofeng.innerclass;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os…
Androidアプリにおいて最も重要な一つがイベント処理です。 たとえば、ボタンがクリックされたり、スライドしたりした場合、 その動作をキャッチして処理を行うのがイベント処理です。 Androidの場合、大きく二つの方法でイベント処理を行います。 1.リス…
activity_main.xml
activity_main.xml
activity_main.xml
AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xxxxx.menutoactivity" > </manifest>
activity_main.xml
activity_main.xml
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </linearlayout>
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal"> </linearlayout>