Tips

Buttonを押下したら電話、ブラウザに接続するAndroidサンプルアプリ

方法②:別クラスにボタンを押した時の処理を記載

package com.example.buttonsample;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		MyOnClickLisener1 listener1 = new MyOnClickLisener1(this);
		Button b1 = (Button) findViewById(R.id.button1);
		b1.setOnClickListener(listener1);

		MyOnClickLisener2 listener2 = new MyOnClickLisener2(this);
		Button b2 = (Button) findViewById(R.id.button1);
		b2.setOnClickListener(listener2);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}
}

class MyOnClickLisener1 implements OnClickListener {
	Context context;

	public MyOnClickLisener1(Context context) {
		this.context = context;
	}

	@Override
	public void onClick(View v) {
		Uri uri1 = Uri.parse("http://www.networkacademy.jp/");
		Intent intent1 = new Intent(Intent.ACTION_VIEW, uri1);
		context.startActivity(intent1);
	}
}

class MyOnClickLisener2 implements OnClickListener {
	Context context;

	public MyOnClickLisener2(Context context) {
		this.context = context;
	}

	@Override
	public void onClick(View v) {
		Uri uri2 = Uri.parse("tel:0120105907");
		Intent intent2 = new Intent(Intent.ACTION_CALL, uri2);
		context.startActivity(intent2);
	}
}

activity_main.xml(旧バージョンではmain.xml)

アプリの画面に表示している文字やボタンはここで決めています。

  • 表示させる文字:12行目、21行目、30行目で各々表示させる文字を決めています。
  • ボタンのid:15行目と24行目でボタンのidを決めていますね!
    例えば、ここでは一つ目のボタンのidはbutton1です。
    上の方法①の17行目では、ボタン1に関する処理を書いているため、button1が使われています。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="ボタン処理" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/button2"
        android:layout_below="@+id/textView1"
        android:text="SAKに接続" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/button3"
        android:layout_below="@+id/button1"
        android:text="SAKに電話" />

</RelativeLayout>

AndroidManifestの一部

電話アプリやブラウザアプリを使用するので、マニフェストファイルにuses-permissionを追加します。
追加内容は次の2つです。

  • 電話アプリを使用する:10行目
  • インターネットを使用する:11行目
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.buttonsample"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.INTERNET" />

これでOKです。
ボタンを押した後の処理が、なんとなくわかったかと思います。
冒頭でもお伝えしましたが、最初から事細かに理解しよとせずに、なんとなくでいいので、動きを見ながらじっくりと理解してくださいね。

とっても簡単なAndroidサンプルアプリ集

【Button・電話・ブラウザ】
【EditText・TextView・Button】
【Spinner・TextView】
【RadioButton・Toast 単体のRadioGroup】

【RadioButton・Toast 複数のRadioGroup】
【Spinnerの項目をJavaで記述(MainActivity.javaに記述)・Toast】
【ProgressDialog・EditTextのnull(未入力)を取得・Button】
【ListView・配列】

Android TIPS

Android TIPS 旧バージョンで開発環境を構築する
Android TIPS 日本アンドロイドの会 2012年7月定例会
Android TIPS 開発環境の構築①
Android TIPS 開発環境の構築②

Android TIPS 開発環境の構築③
Android TIPS Toastの表示時間を長く/短くする
Android TIPS HelloWorldプログラムの作成・実行
Android TIPS HelloWorldプログラムについて

Android TIPS アプリケーション開発 初級(activity_main.xmlについて)
Android TIPS アプリケーション開発 初級(strings.xmlについて)
Android TIPS アプリケーション開発 初級(ローカライズ)
Android TIPS ボタン(Button)とイベントリスナー

Android TIPS onClick(View) はスーパークラスのメソッドをオーバーライドする必要があります
Android TIPS フラグメントでタブレット用レイアウトを作る
Android TIPS DialogFragmentをつかってAlertDialogを表示する
Android TIPS DialogFragmentをつかってAlertDialogを表示する(その2)

Android TIPS タブレットとスマートフォンに対応したアプリケーション
Android TIPS エミュレータが起動しない(PANIC: Could not open: C:Users…)

Android 基礎

[Android 基礎] リニアレイアウト LinearLayout概要
[Android 基礎] 相対レイアウト RelativeLayout概要

ADT Bundle (Android 新開発環境)

最新のAndroid開発環境【adt-bundle】のまとめ
ADT Bundleを使って開発環境を構築する(Android SDK revision 21)
Eclipseを日本語化する(Pleiadesプラグイン使用)

Android講座 体験レポート

Android講座 体験レポート 第1回
Android講座 体験レポート 第2回
Android講座 体験レポート 第3回
Android講座 体験レポート 第4回

Android講座 体験レポート 第5回
Android講座 体験レポート 第6回
Android講座 体験レポート 第7回
Android講座 体験レポート 第8回

Android講座 体験レポート 第9回
Android講座 体験レポート 第10回
Android講座 体験レポート 第11回
Android講座 体験レポート 最終回

Androidアプリ開発の必須知識!JAVAプログラミングを学べる連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search