仕事で急きょAndroidを扱うことになり、個人的にもスマフォアプリ開発には大変興味があったので、勉強中。
以前はTitaniumで作っていたので、純粋なJavaで作ったことがなかった。今回はそんなほぼ一からのスタート。Webの世界のアプリは一通り作れるようになったと自負しているので、スマフォアプリとWebが連携するようなサービスが作れるようになろう。
どんなアプリを作るにせよ、個人的には以下の2つの流れがわかれば何でもいけると思ってる。他の細かいことはウェブから漁ってくればいいのさw
- アクション→レンダリング→ページ遷移 の流れ
- イベントリスナ
そういう自分にはこの本はとても良い。読みながらアプリを作ると変な自信が生まれるので、自分みたいなプログラミング中級者がAndroidアプリを一から勉強するにはおすすめ。
[rakuten:neowing-r:10580055:detail]
以下ちょっとしたメモ。
Android開発メモ
//layout/first.xml
//イベントリスナの登録 src/Activity.java
Button btn = (Button) this.findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
}
});
もしくは
public class ~~ extends Activity
implements View.OnclickListener{ ...
Button btn = new Button(this);
btn.setOnClickListener(this);
public void onClick(View v){
...
}インテント
他のアクティビティを呼び出す仕組み
明示的なインテント(Explicit Intents)
実行するクラスを指定する方法
//activity.java
Intent intent =
new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);//manifest.xml
暗黙的なインテント(Implicit Intents)
指定しないでOSに任せる方法
ACTION_VIEW http://...
Webブラウザで指定のURLを表示
ACTION_VIEW geo:latitude,longtitude
指定した緯度、経度の地図を表示。 ネットアクセスとロケーションの権限が必要
ACTION_VIEW content://contacts/people/1
アドレス帳の1番目の人の情報を表示
ACTION_DIAL tel: 電話番号
指定した番号のダイヤルウィンドウを開く
ACTION_CALL tel: 電話番号
指定した番号に電話をかける電話をかけるための権限が必要
ACTION_SENDTO mailto:アドレス
メール送信
// 暗黙的なインテントのオプション値設定
Uri uri = Uri.parse("mailto:"+edit.getText().toString());
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra(Intent.EXTRA_SUBJECT, edit.getText().toString();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);プリファレンス
キーと値の組み合わせでデータを保存する方法
アプリケーションの設定情報の保存などに向いてる
アクセス
SharedPreferences prefer = getSharedPreferences(
"PREF_NAME", MODE_PRIVATE)
モード:
MODE_PRIVATE: 他のアプリからアクセス不可
MODE_WORLD_READABLE: 他アプリから読み込み可能
MODE_WORLD_WRITABLE: 他アプリから書き込み可能
保存
SharedPreferences.Editor editor = prefer.edit();
editor.putString("settingInfo", text.getText().toString());
editor.commit();
取得
SharedPreferences prefer = getSharedPreferences(
"PREF_NAME", MODE_PRIVATE)
text.setText(prefer.getString("settingInfo","");
第二引数はデフォルト値オプションメニューの生成
private static final int MENU_ID_ITEM1 = Menu.FIRST;
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuItem item1 = menu.add(Menu.NONE, MENU_ID_ITEM1, Menu.NONE, "設定");
item1.setIcon(android.R.drawable.ic_menu_delete);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case ...
}
}