Androidの履歴
Android開発においての初心者が引っ掛かりそうなの
長くなってきたのでうまく分けたい。。。
マニュフェストファイルでインターネット接続を許可する
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.it4myself.hellohtml"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloHTML"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
レイアウトXMLの注意
ファイル名には、アルファベットの小文字や数字、アンダースコアしか使用できません
http://www.atmarkit.co.jp/fjava/rensai4/android04/android04_...
SAXとXMLPullParser
SAX
順次自動的にXMLを読み取っていき、条件に応じてイベントが実行される。
http://www.fireproject.jp/feature/xml/programing/java-sax.ht...
XMLPullParser
SAXと同じくXMLの順次読み取り型ではあるけども、自動的に読み取っていくのではなくこちらでPullしてあげなければならない。
http://www.adakoda.com/adakoda/2009/01/android-xmlpullparser...
あとDOMパースというのがあるのだけど、これはまた後日。結局どっちが早いんだろうか。
リストビューのカスタマイズ
1.リスト用のXMLを用意。
2.ArrayAdapterをオーバーライドして専用のアダプタを作成する。
3.getViewオーバーライドで各情報をviewに対して設定していく
http://labs.techfirm.co.jp/android/cho/751
ImageView
setImageUriはHTML経由の画像は使えない。
HTTPを経由する場合setImageDrawable(Drawable drw)
ちなみに引数のDrawableクラスはDrawable.createFromStream(new URL("URL").openStream(),"Name")で作成
http://d.hatena.ne.jp/iRSS/20100102/1262444905
非同期処理
バックグラウンドで処理し、もうひとつのスレッドでアラートやロード画面だしたりするには?
AsyncTaskクラスをオーバーライドして内部の各イベントをオーバーライドする感じ?
ん?いちクラスにつきいちメソッド(execute())しか非同期処理できなくない?
http://dann.g.hatena.ne.jp/dann/20090713/p1
http://codezine.jp/article/detail/4842?p=2
http://www.adamrocker.com/blog/255/hello-android-chapter7-th...
Activityは必ずマニュフェストに宣言しないといけない
明示的インテントで別Activityに飛ぼうとしたらエラー!
↓
Unable to find explicit activity class {パッケージ名/クラス名}; have you declared this activity in your AndroidManifest.xml?
メインのActivityじゃなくても宣言しないと認識されない。
マニュフェスト大事!
暗黙的/明示的インテント
明示的インテント
同アプリ内で明示的に起動したいActivityを指定して飛ぶ。
<span style="font-weight: bold">Intent intnt = new Intent(Context,飛び先クラス);
intnt.putExtra(飛び先で呼び出すキーとなるString,渡す内容);</span>
渡す内容はいろんな型を渡せるけどクラスのインスタンスなどの複雑なオブジェクトを渡す場合は、そのクラスにSerializableインタフェースを実装するか、Parcelableインタフェースを実装するかしないと渡せない。なお、飛び先でわたってきた内容を得るには以下(シリアライザブルオブジェクトの場合)。
getIntent().getSerializableExtra(設定したキー);
SerializableよりParcelableの方がプロセス間通信用に作成された分高速なのかなー。
暗黙的インテント
マニュフェストに書かれてあるフィルタによってふるい分けられて勝手にactivityが選ばれる。GoogleMapをUriで呼ぼうとしたら失敗した。失敗した。失敗した。失敗した。失敗した。失敗した。失敗した。失敗した。失敗した。失敗した。エミュレータにGoogleMap用アプリが無いからか??
こことか参考にするとよさそう。
http://www.saturn.dti.ne.jp/~npaka/android/ActivityEx/index....
参考URL
http://d.hatena.ne.jp/MineAP/20080325/1206453567
http://labs.techfirm.co.jp/android/cho/829
http://d.hatena.ne.jp/minghai/20080525/p2
http://www.adakoda.com/adakoda/2009/01/android-xmlpullparser...
http://d.hatena.ne.jp/tak87/
http://www.adakoda.com/android/000077.html