ブログトップ

智信の部屋

tomonobu.exblog.jp

プログラムに関する雑談なんかを書いていこうと思います。(android記事のまとめサイトはこちらです→http://tomonobu.rocketserver.jp/android_blog_index.php)

さて、Androidアプリの開発が一段落した感じなので、
iPhoneアプリの開発をはじめてみよう!!
ってことでまずは環境構築をしてみようと思います。
つーわけでMacBook Proへの環境構築を試してみます。

参考資料
 いまさら聞けないiPhone/iPadアプリの作り方の基礎

1.Apple IDの登録
・Apple IDを所有していない場合、Apple IDの作成でApple IDを新規作成します。

2.SDKのインストール
・Mac App Store PreviewのXcode By AppleよりApp Store起動し、インストーラーをダウンロードします。
・ダウンロードしたInstall Xcodeを使用してSDKのインストールを行います。

基本は以上で終了です。
[PR]
# by Tomonobu1979 | 2011-09-29 16:22 | iPhoneアプリ
以前の「AlertDialogでのChoiceリスト表示」で
AlertDialog を選択式の ChoiceDialog として使用できるようにしたが、
今回はさらにマルチ選択を可能とする MultiChoiceDialog として使用できるようにする。

参考資料
 「Android AlertDialogを表示する

環境
 Android 2.1-update1

 ・AlertDialog においてチェックボタン付きのリスト表示を行うために
  クラスとして AlertDialog.Builder を使用する。
 ・チェックボタン付きのリスト表示の設定は
  setMultiChoiceItems を使用する。
  今回は
   setMultiChoiceItems (CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)
  を使用する。
  【引数】
   items
    表示を行うリストのアイテムを設定する
   checkedItems
    初期で選択されているアイテムを設定する
   listener
    アイテム押下でのクリックリスナーを設定する
 ・アイテム設定の完了を行うために setPositiveButton を使用する。
  今回は
   setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)
  を使用する。
  【引数】
   text
    ボタンの表示タイトルを設定する
   listener
    ボタン押下でのクリックリスナーを設定する
 ・キャンセル時の動作を考え setMultiChoiceItems でのクリックリスナーでは
  押下の結果をテンプレートの変数に保存を行うようにする。
  最終的に決定された場合にテンプレートを本来の変数に保存を行うようにする。

サンプルコード
package com.tomonobu.application.test_3;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class Test_program_3Activity extends Activity {
AlertDialog.Builder dialog;
String[] menu_list = new String[4];
boolean[] menu_list_selected;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int i;

menu_list[0] = "red";
menu_list[1] = "green";
menu_list[2] = "blue";
menu_list[3] = "black";

menu_list_selected = new boolean[menu_list.length];
for (i = 0;i < menu_list.length;i ++) {
menu_list_selected[i] = false;
}

Button button = new Button(this);
button.setText("menu");
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
final boolean[] tmp_menu_list_selected;
tmp_menu_list_selected = menu_list_selected.clone();
dialog = new AlertDialog.Builder(Test_program_3Activity.this);
dialog.setTitle("マルチチョイス");
dialog.setMultiChoiceItems(
menu_list,
menu_list_selected,
new DialogInterface.OnMultiChoiceClickListener(){
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
tmp_menu_list_selected[which] = isChecked;
}});
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
int i;
menu_list_selected = tmp_menu_list_selected.clone();
String text = "";
for (i = 0;i < menu_list.length;i ++) {
if (menu_list_selected[i]) {
if (text.length() > 0) {
text += ",";
}
text += menu_list[i];
}
}
Toast.makeText(Test_program_3Activity.this, text, Toast.LENGTH_LONG).show();
}});
dialog.show();
}});
setContentView(button);
}
}


[PR]
# by Tomonobu1979 | 2011-09-25 03:46 | android
通常の TextView において、
メールの本文表示のように特定の文字列をリンク文字列として表示させます。

参考資料
 「【Android】 ダイアログでリンクを有効にする方法

 ・TextViewsetAutoLinkMask を設定することで
  有効なリンクの対象を設定する。
  設定には Linkify を使用する。
   ALL
    すべてのリンク対象を有効にする
   EMAIL_ADDRESSES
    メールアドレスをリンク対象とする
   MAP_ADDRESSES
    地図に関するアドレスをリンク対象とする
   PHONE_NUMBERS
    電話番号をリンク対象とする
   WEB_URLS
    webアドレスをリンク対象とする

サンプルコード
package com.tomonobu.application.test_3;

import android.app.Activity;
import android.os.Bundle;
import android.text.util.Linkify;
import android.widget.TextView;

public class Test_program_3Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView tv = new TextView(this);
String message = "";
message += "http://anitama.com/marunage\n";
message += "test@test.com\n";
message += "03-0000-0000\n";
tv.setAutoLinkMask(Linkify.ALL);
tv.setText(message);
setContentView(tv);
}
}


[PR]
# by Tomonobu1979 | 2011-08-20 00:30 | android
以前の「AlertDialogの表示」で表示を行った AlertDialog
選択式の ChoiceDialog として使用できるようにする。

参考資料
 「Android AlertDialogを表示する

 ・AlertDialog においてラジオボタン付きのリスト表示を行うために
  クラスとして AlertDialog.Builder を使用する。
 ・ラジオボタン付きのリスト表示の設定は
  setSingleChoiceItems を使用する。
  今回は
   setSingleChoiceItems (CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)
  を使用する。
  【引数】
   items
    表示を行うリストのアイテムを設定する
   checkedItem
    初期で選択されているアイテムを設定する
   listener
    アイテム押下でのクリックリスナーを設定する

サンプルコード
package com.tomonobu.application.test_3;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class Test_program_3Activity extends Activity {
private String[] items = new String[3];
private int selected = -1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Button button = new Button(this);
button.setText("choice test");
setContentView(button);

items[0] = "Red";
items[1] = "Green";
items[2] = "Blue";

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder dialog =
new AlertDialog.Builder(Test_program_3Activity.this);
dialog.setTitle("Test");
dialog.setSingleChoiceItems(items, selected, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
selected = which;
Toast.makeText(Test_program_3Activity.this,
items[which],
Toast.LENGTH_LONG).show();
dialog.dismiss();
}
});
dialog.show();
}
});
}
}


[PR]
# by Tomonobu1979 | 2011-08-19 23:01 | android
Timerの実装」で TImer を使用したけれども、
同一スレッド上での実現ってことで Handler でワンタイムタイマを実現してみる。

参考資料
 「Androidで定期的に処理を実行する方法

 ・Handler でワンタイムタイマを実現する方法として、
  以下が使用できる。
   postDelayed
    Runnable で処理を登録して Delay を設定
   sendMessageDelayed
    Message を登録し Delay を設定して、
    実際の処理を handleMessage に実装する
   ※個人的には Runnable は客観的にどのスレッドに属しているのかわかりにくいので
    handleMessage で実装してみる

サンプルコード
package com.tomonobu.application.test_3;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
import android.widget.Toast;

public class Test_program_3Activity extends Activity {
private final static String MESSAGE = "message";

private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
String message = msg.getData().get(MESSAGE).toString();
Toast.makeText(Test_program_3Activity.this, message, Toast.LENGTH_LONG).show();
}
};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView tv = new TextView(this);
tv.setText("Timer Test");
setContentView(tv);

Bundle bundle = new Bundle();
Message message = new Message();
bundle.putString(MESSAGE, "Timer Test");
message.setData(bundle);
handler.sendMessageDelayed(message, 2000);
}
}


[PR]
# by Tomonobu1979 | 2011-08-18 02:31 | android