androidのプログラミングを行っていると、変だなと思うことがある。
ただし、変だと思うのは私だけであって、私が変であるという可能性を否定することはできない。
IntentクラスにcreateChooserメソッドがある。
public static Intent createChooser (Intent target, CharSequence title)
これは、共有コマンドを実行する時に、起動できる複数のアプリの中から、お好みの1個のアプリを選択する画面を表示するメソッドである。
必須のメソッドでは無い。
startActivity()には対応しているが、startService()には対応していない。
1 第二引数の文字列を、画面のタイトルに設定できることである。
2 「常にこのアプリを起動する」オプションボタンが表示されなくなる。
次のように書く。
Intent i, i2;
i = new Intent();
i.setAction(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, "InfiniteIntent");
i2 = Intent.createChooser(i, "選択してください");
try{
startActivity(i2);
}
catch(ActivityNotFoundException e){
}
仕掛けが大袈裟な割には、タイトル文字列を変更するだけなのか?。などという疑問を持つのは果たして私だけだろうか。
選択してください
1:私も同感である。
2:設計をミスしたように見えるな
2:設計をミスしたように見えるな
3:そんな疑問を持つのはアンタだけや!
4:このような仕掛けにすることが技術的に妥当である。
5:不満があるなら自分で拡張しろ!
6:むむむ!
6:むむむ!
こんにちは。
返信削除1:私も強く同感
します。
これが存在する意味が解らず、悩んだり検索したり結構な時間を無駄にしてしまいました。。
これを見てしまったのも、さらに疑問を膨らませ。。
http://ascii.jp/elem/000/000/542/542800/index-3.html
しっかり「コンテンツを選択させる」とか。。
個人サイトなどではなく、相応のメジャーサイト(?)で堂々と間違いを書かれると、悩む自分が変なのか?と悩みますね。
おっしゃるとおり私も、Android APIには奇妙な仕様が多いと思います。