[Android] [Android Studio] ボタンの同時押しを禁止する

ボタンを同時に押されては困る状況がある Android編。

Androidでボタンの同時押しを禁止するにはstyleに設定してしまうのが楽。
splitMotionEventsをfalseにしてあげる。
これを任意のスタイルに設定して、Manifestで適用すれば一括で対応できる。
もし特定のActivityでは同時押しできないと困るという状況なら、個別に設定していくしかない。

<style name="YourStyleName" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:background">#ffffff</item>
    <item name="android:splitMotionEvents">false</item>
</style>

iOS版はこちら

[iOS] [Xcode] ボタンの同時押しを禁止する

ボタンを同時押しされては困る状況がある。だいたい困る。ほぼ100%困る。
これはコードで制御してもいいけどStoryBoard上で設定してしまうとすごく楽。
[User Defined Runtime Atributes]にexclusiveTouchを設定してあげる。
チェックボックスをオンにしておくと、このボタンは他のボタンと同時に押せなくなる。

ios_button_multitap

Android版はこちら

[iOS] [Xcode] アプリ名の変更

ホーム画面に表示されるアプリ名は何もしなければ
初期設定としてプロジェクト名が設定される。

やっぱりださいよね。
むしろ変更しない人はまずいないんじゃないかと思う。

では名前を変更するにはどうするか。
Xcode上の[プロジェクト名]->[Supporting Files]->[Info.plist]の
Bundle display nameを修正する。
上記Keyが無ければ、行を追加してあげればよいのだ。

ios_change_app_name

[iOS] [Objective-C] Schemeを使って起動する

ブラウザ等からアプリを起動したい場合、
スキームを使って起動することができる。

Xcode上でスキームの設定をする。
1. Identifierには任意の識別子を設定。
2. URL Schemesにはアプリを起動するためのユニークなスキームを設定。

ios_scheme_setting

スキームから起動した場合、パラメータやフラグメント識別子を返してもらうことが多く、
それらのパラメータはAppDelegate@applicationで受け取ることができる。
そもそも関数自体がなかった場合は、追記してあげるとよい。

[AppDelegate.m]
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  // urlに呼び出しパラメータが入っている
  // jp.chirashi-no-ura.hoge://hogehoge=piyopiyo
}

[Android] [Java]URLをブラウザで開く

ボタンのタップイベントとかでURLをブラウザで開きたい時に。
startActivityにIntentを渡してあげる。

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    Uri uri = Uri.parse("開きたいURL");
    startActivity(new Intent(Intent.ACTION_VIEW,uri));

    // 省略するならこう書いてもいい
    //startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("開きたいURL")));
  }
});

iOS版はこちら