Buttonを押すと電話がかかったり、ブラウザに繋がります!
※はじめに
この記事はAndroidアプリの開発が、初心者であるという方のための記事です。
そのため、なるべく複雑な説明は避け、コピー&ペイストですぐに動くものをご紹介します。
JavaやAndroidを理解されている方で細かい説明が必要な方は、当ブログ内の連載記事である「Android Tips」をご覧ください。
私がAndroidのアプリを開発しはじめた頃、一番欲しかったものは・・・
「サンプルコードをほぼそのままコピーして、自分のソースコードに張り付けても、ちゃんと動いてくれるサンプルコード」でした。
しかしながら当時私は、中々ピンポイントでこれだっ!というものには出会えませんでした。。。
だから少しでも、Androidのアプリを作り始めて、私と同じような思いをされる方々のお役に立てればと思い書いていきます。
パッと見、難しい処理に見えても心配はいりません。
すぐにわかるようになりますので、気軽にコピー&ペイストしてみてください。
(注意:当然ですが、アプリにコピペする場合は、アプリのファイル名やパッケージ名はご自身のものに修正してくださいね。)
今回はAndroidのウィジェットの一つであるButton(ボタン)です。
意外に簡単なButton
ボタンを押した後の処理は、複雑なものでなければ意外に簡単です。
アプリ完成図
MainActivity.java(ソースコード)
2つの方法のどちらかで試してみてください。
細かい説明はあえてしません。
とりあえず動かしてみましょう。
※電話に関してはボタンを押した時に、指定している番号にいきなりかかります。
通常は「本当に電話をかけますか?」というダイアログを表示したり、一度ダイヤル画面に移動させる等の処理を書きます。
ここでは極力簡単にするためにこの方法にしておりますので、ご了承くださいね。
- URLの指定:方法①では22行目で、方法②では44行目で指定しています。
- 電話番号の指定:方法①では33行目で、方法②では59行目で指定しています。
方法①:匿名クラスを用いて、同クラス内に処理を記載
package com.example.buttonsample; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b1 = (Button) findViewById(R.id.button1); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri1 = Uri.parse("http://www.networkacademy.jp/"); Intent intent1 = new Intent(Intent.ACTION_VIEW, uri1); startActivity(intent1); } }); Button b2 = (Button) findViewById(R.id.button2); b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Uri uri2 = Uri.parse("tel:0120105907"); Intent intent2 = new Intent(Intent.ACTION_CALL, uri2); startActivity(intent2); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }