Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
今日は、NFCタグの基本の情報を読み取る簡単なサンプルを紹介します。 読み取る情報はタグの、アクション、ID、TechListです。 NFCのパーミッションを追加するのを忘れずに AndroidManifast.xml <uses-permission android:name="android.permission.NFC" /> MainActivity.java public class MainActivity extends Activity { private NfcAdapter mAdapter; private PendingIntent mPendingIntent; private IntentFilter[] mFilters; private String[][] mTechLists; TextView nfcActionView; TextView nfcId
タイトルは誇張です。 みんな大好きpotatotipsという勉強会で以下のようなトークがあったようです。(現場には行っていません) 曰く「ActivityContextで何千回もやったら数回リークが検出された。 なるべくApplicationContextを使おう」とのことらしいですが、間違いなく死人が出る(誇張)と思いますのでご注意ください。 (追記20160527: 修正されたようです なんかすみません) speakerdeck.com 結論 Application Contextは使わないでください。(誇張) (実際は使うときは使う) なぜApplication Contextなのか Application Context使おうぜ!という根拠の記事としてこちらのフェンリルのDeveloper's Blogの [追記あり] Android 開発で気をつけたいこと 〜変数名と Conte
[Android Tips] Pub / Sub ライブラリ「Otto」を使って Fragment から Activity にイベントを通知する Pub / Sub みなさん、Fragment で発生したイベントを Activity に通知する場合は、どのように実装していますか? Fragment の Listener を作ってみたり、Activity に Public メソッドを作ってみたりといったような方法がありますが、何だかスマートじゃないですよね。 そんなときに役に立つのが Otto というライブラリです。モバイル決済サービスで有名な Square 社が公開しており、Google が公開している Guava ライブラリを Fork して作られています。 このライブラリを使うと、Pub / Sub モデルのメッセージングを非常に簡単に実装できます。Pub / Sub モデルとは簡単に
WebView を通常のブラウザとして使いたいと思って利用したときに、すぐに直感で期待した動作と異なる動きをすることに気づきます。 表示された HTML ページをクリックして、次のページへジャンプするとき、新しくブラウザが開いてしまうのです。 同じ WebView 内に次の新しいページのコンテンツをロードするにはどうしたらよいでしょうか。 WebView - 既定で新しいブラウザが開く WebView を配置して http://www.google.com/ をロードします。そして、検索項目を入力して検索します。 試しに "webview" と入力して・・・ 検索開始。 うまく検索できたようにみえますが、しかしよくみると、これは元のアプリケーションではなく、新しくブラウザが開いています。 もとのアプリケーションに画面を切り替えると、次のように元の検索開始前の状態のままです。 元々新しくブラ
Android Advent Calendar 2014 21日目の記事です。 LollipopでActivity Transitionsが追加されました。(https://developer.android.com/training/material/animations.html#Transitions) Fragmentにも無いのかな?と探してみたところ普通にありましたので,あわせて新たに追加されたTransitionの使い方をまとめます。 できるようになったこと 今まではActivity/Fragmentの遷移時のアニメーションについては、それぞれの持つView 全体 に対して効果を指定していました。 LollipopからはTransitionを用いることにより、Activity/Fragmentの 各View についてアニメーション可能になりました。 例えばViewが画面外に発散
マッチョなActivityサンプル ڈ�U �U package net.yanzm.profileapplication; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; impor
Fragmentの使い方を調べてたら Fragmentを利用して、画面遷移する世界一簡単なAndroidアプリを開発する のブログが参考になった。 ただ、このレイアウト、ソースを書けばOKって感じの記載があったらもっとよかったので、それを記載。 ※上記ブログだと、Main、Detailと記載がありますが、ここではFirst、Secondに変えています。 概要 1ページ目をFirst、2ページをSecondとする。 Firstページで[Next]ボタンをクリックするとSecondページへ遷移するアプリを作ります。 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.
APIレベル13からActivity.showDialog(int id)は非推奨となってしまいました。 DialogFragmentを使ってダイアログを表示させる方法が推奨されています。 (2013年12月12日現在) 参考 公式ドキュメント Dialogs DialogFragmentを利用するときのチェックポイント シンプルなアラートダイアログ ※ 縦横切替時にTestDialogFragmentのコンストラクタがないと落ちるかもしれません(未確認) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_top); // ダイアログを表示する DialogFragment ne
概要 Lollipop が発表されてから時間も立ち、Android Auto、Android Wear、Android TV と、多様性を見せ始めた Android ですが、今後とも多種多様なデバイス向けに様々なアプリを作っていく流れがあるなか、新しくアプリを作るなら抑えておきたい要所をまとめました。 TL;DR 抑えるところは 3 つ。 画面とライフサイクル 非同期処理 互換性 かなり端的にいうと、Activity や Service などのライフサイクルとうまく付き合いながら、コードの構成のレイヤー化を行い、非同期処理を簡潔に記述できる準備をしておくことと、非同期処理とあわせてマルチスレッドプログラミングの基本を抑えておくこと、互換性への準備を最初にしておきましょう、という話です。 画面とライフサイクル MVC を基本として、データ構造を定義して Activity や Fragment
Honeycomb から登場した Fragment によって、すべてのコントローラロジックが Activity に集約されてしまう呪縛から解き放たれ、人類は平和を取り戻しました。Fragment はまた、Support Library のメンバとして、Gingerbread 以前の過去世に積み上げた罪業をも消し去ろうとしています。 そんな Fragment ですが、いまいち使い方が分からない、という声も時折耳にします。本稿では、Android アプリケーションの開発を始めて Activity と Fragment について学び、その両者の住み分けに悩んでいる方向けに、効果的な Fragment の作り方を紹介しようと思います。 Fragment がなかった暗黒の時代 Fragment がなかった時代、人類はどのようにして Android アプリケーションを作っていたのでしょうか。 タブを使
以前アプリを組んでた時はActivityだけを使ってたけど、どうやら今はFragmentを使って画面制御をおこなうのが常識になっているみたいですね。 調べたことをメモ。 Fragmentとは? cf.今さら聞けないActivityとFragmentの使い分け Fragment以前の問題点 Activity という割と大きなオブジェクトを、タブのホストとタブのコンテンツの数だけメモリに乗せないといけない いくつかの専用のコンポーネントとガッツリ連携しなければ実現できないため、柔軟性に乏しい なるほど。 Fragmentのメリット UI を持ち、その UI の振る舞いを管理する、Activity の中に組み込むことが出来るコンポーネントが Fragment です。つまり、これによって、タグだけでは実現できなかった、コントローラのロジックを使いまわす事ができるようになったのです。 また、Acti
Android アプリケーションのタイトルバーの内容を変える方法について。 1. デフォルトのタイトルを変更する場合 AndroidManifest.xml を編集する。 <activity android:name=".activity.SampleActivity" android:label="@string/app_name"> </activity> この android:label="@string/app_name" の部分を書き換える。任意の文字列リソースが指定可能。 2. 実行時に動的に変更する場合 アプリケーションの状態によってタイトルを変更したい場合などは実行時に動的に変更する必要がある。この場合は Activity クラス内で次のように記述する。 setTitle("新しいタイトル"); setTitle メソッドに渡せる引数は CharSequence (Stri
Activity で レシーバーを登録して、インテントでサービスを開始する。 サービスでは、システムの時間を取得して、レシーバーに送る。 レシーバーでは受っとった時間を画面に表示する。 package com.example.servicetest; import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { IntentFilter intentFilter; MyService4Receiver receiver; Intent intent = null; /**
今更ながらライフサイクル(onCreate()→onStart()→onResume())の理解を 曖昧なまま開発を進めてしまっていたため、流れを確認するために サンプルソースを作ってみた。 説明 よく参考書なので目にするこのライフサイクルを動かして確かめる。 cycletest.java(メインアクティビティ) main.xml(メインのレイアウト) cycletest.java public class cycletest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT).show(); } @Overr
Activityのライフサイクルについて考えたいと思います。 アンドロイドアプリはextends Activityという文言をclassに付加をさせる事がデフォルトとなっていますが、基本的には全てのアンドロイドアプリは、Activityクラスを継承してライフサイクルを行います。 public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(
基本的なライフサイクルメソッドを補うかのように、さまざまなタイミングでハンドリングできるのが分かると思います。これらのメソッドをうまく使うと、いろいろと細かい制御ができるようになります。 画面遷移パターンで呼ばれるメソッドを確認する 上記すべてのメソッドが呼ばれたときのログをとり、いくつかの画面遷移のパターンを操作したときに呼ばれるメソッドとその順番を確認してみました。 Activity を起動する アプリ起動後、初めて表示されたときの場合です。 onApplyThemeResource() は onCreate() より前に呼ばれています。 Activity の表示中にバックキーを押す Activity の表示中にバックキーを押して Activity を閉じました。 Activity にはもう戻ってこないので、 onDestroy() まで呼ばれ完全に破棄されます。 Activity の
こんばんは。 今回は画面遷移の時にアニメーションを設定し、iPhoneライクのようにしたいと思います。 スタイルを設定すると簡単にアプリ内全ての画面遷移に適用できるので、それでやりたいと思います。 また、例えばひとつの画面遷移では左右に画面がフェードイン・アウトするアニメーションを作りたくて、もう一つの画面遷移では上下に画面がフェードイン・アウトするアニメーションを作りたい場合は、スタイルではなく、StartActivityの際に指定します。 今回はそちらのほうのやり方も載せます。 まず、端末のアニメーションを有効にします(Android4.0のやり方)。 メニュー > 設定 > 開発者向けオプション > トランジションアニメ を1倍にする。 ウィンドウアニメも1倍にしとくと良いかもしれません。 アニメーションのTheme作成 ThemeとStyle の定義 res/values/styl
Androidアプリでは、特に指定をしないと端末を横にすると横画面に、縦にすると縦画面になります。 レイアウトやデザイン上、横向き、縦向きの画面に対応していない場合はこの回転をさせないように指定します。 [参考記事] 画面の向きによってレイアウトを変更する方法 指定の方法は AndroidManifest.xml の manifest → application → activity に screenOrientationを記述します。 横画面に固定するには <activity android:screenOrientation="landscape"> 縦画面に固定するには <activity android:screenOrientation="portrait"> SDK(エミュレータ)で画面の向きを変更する(縦から横、横から縦)には、Ctrl+F11です。 screenOrient
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く