Tips

電話帳アプリ | AndroidBasic卒業生作成アプリ

卒業生が作成した電話帳アプリ

こんにちは!
当校のAndroidアプリケーション開発講座Basicの卒業生が作成したアプリを御紹介します。
尚、以下の点にご注意ください。

  • 保証について
  • 当アプリは商用利用を目的としている訳ではありません。したがって、当アプリを模倣しアプリを作成および使用した場合に生じたトラブルに関しまして、当校では一切の責任を負いかねますので予めご了承ください。

  • 作成者について
  • ここでは卒業生の中でも比較的にプログラム経験がない方が作成したアプリを御紹介致します。
    未経験でもここまで作れるようになります!

アプリの概要

このアプリは簡単な電話帳です。
時間の制約上、細かい機能等は付いていません。

このアプリではデータベースを用いており、標準の電話帳のデータベースからデータを抜き出して表示するものではありません。ちゃんと一から作ってくださいました!笑

アプリのキャプチャ

  • アプリ起動時のスプラッシュ画面とメイン画面
  • アプリを起動すると「スプラッシュ画面」というトップ画面が出てきて、数秒後にメイン画面に移動します。
    メイン画面には「新規」ボタンと「データ削除」ボタンを設置しています。

    1

    2

  • 電話帳登録
  • メイン画面で「新規」ボタンをクリックするとこの画面が起動します。
    項目を入力し「Button」ボタンをクリックすると登録されます。(※Buttonは「登録」にし忘れたそうです。笑)
    なお、「メールアドレス」は省略可能ですが、「名前」と「電話番号」は必須項目としてプログラム上で設定してあります。
    登録が終了するとメイン画面に追加されます。(下右図)
    3

    4

    5

  • 登録内容の修正および削除
  • メイン画面で各項目をクリックすると、その項目の「詳細画面」に移動します。
    「詳細画面」内にはボタンが3つ設定されています。
    「編集」ボタンをクリックすると「上書き」や「削除」を行う画面(下右図)に移動します。
    尚、ここでの「削除」ボタンはその項目のみを削除します。
    ちゃんと確認用の「ダイアログ」というものも表示させています!!

    「電話」ボタンをクリックすると通話を開始します。
    「メール」ボタンをクリックすると標準メールアプリが立ち上がります。
    6

    7

    8

  • 登録データ削除
  • この「データ削除」ボタンは登録しているすべてのデータを削除するボタンです。
    こちらも削除前にちゃんと確認用の「ダイアログ」を表示させています!!
    9

    アプリのソースコード

    このアプリは以下のような構成となっています。

    Activityファイル(javaファイル) 画面レイアウトファイル(xmlファイル) 用途
    MainActivity.java activity_main.xml メイン画面
    EntryActivity.java activity_entry.xml 登録画面
    DetailActivity.java activity_detail.xml 項目の詳細画面
    EditActivity.java activity_edit.xml 編集画面
    SplashActivity.java activity_splash アプリ起動時のスプラッシュ画面

    尚、この他に、画面ではありませんが「データベース」の生成を行っている「MyOpenHelper.java」があります。

    1. メイン画面
      • MainActivity.java
      • package com.example.contactlistsample;
        
        import android.app.Activity;
        import android.app.AlertDialog;
        import android.content.DialogInterface;
        import android.content.Intent;
        import android.database.Cursor;
        import android.database.sqlite.SQLiteDatabase;
        import android.os.Bundle;
        import android.view.View;
        import android.view.View.OnClickListener;
        import android.widget.AdapterView;
        import android.widget.AdapterView.OnItemClickListener;
        import android.widget.Button;
        import android.widget.ListAdapter;
        import android.widget.ListView;
        import android.widget.SimpleCursorAdapter;
        
        public class MainActivity extends Activity implements OnClickListener,
        		OnItemClickListener {
        
        	private MyOpenHelper helper = new MyOpenHelper(this);
        	private SQLiteDatabase db;
        
        	private Button entryButton;
        	private Button deleteButton;
        	private ListView listView;
        
        	private String tableName = "person";
        
        	private AlertDialog alertDialog;
        
        	@Override
        	protected void onCreate(Bundle savedInstanceState) {
        		super.onCreate(savedInstanceState);
        		setContentView(R.layout.activity_main);
        
        		entryButton = (Button) findViewById(R.id.entry);
        		deleteButton = (Button) findViewById(R.id.delete);
        
        		entryButton.setOnClickListener(this);
        		deleteButton.setOnClickListener(this);
        
        		MyOpenHelper helper = new MyOpenHelper(this);
        		SQLiteDatabase db = helper.getReadableDatabase();
        
        		Cursor c = db.rawQuery("select rowid as _id," + PersonTable.NAME + ", "
        				+ PersonTable.NUMBER + " from person ", null);
        		c.moveToFirst();
        		startManagingCursor(c);
        
        		ListAdapter adapter = new SimpleCursorAdapter(this,
        				android.R.layout.simple_list_item_2, c, new String[] {
        						PersonTable.NAME, PersonTable.NUMBER }, new int[] {
        						android.R.id.text1, android.R.id.text2 });
        
        		listView = (ListView) findViewById(R.id.ListView1);
        		listView.setAdapter(adapter);
        		listView.setOnItemClickListener(this);
        
        	}
        
        	@Override
        	public void onClick(View v) {
        		switch (v.getId()) {
        		case R.id.entry:
        			Intent entryIntent = new Intent(MainActivity.this,
        					EntryActivity.class);
        			startActivity(entryIntent);
        			break;
        
        		case R.id.delete:
        			Alert();
        			break;
        
        		default:
        			break;
        		}
        
        	}
        
        	@Override
        	public void onItemClick(AdapterView<?> parent, View view, int position,
        			long id) {
        
        		Intent intent = new Intent(MainActivity.this, DetailActivity.class);
        		intent.putExtra("number", id);
        		startActivity(intent);
        
        	}
        
        	public void Alert() {
        		AlertDialog.Builder builder = new AlertDialog.Builder(this);
        		builder.setTitle("注意");
        		builder.setMessage("このアプリケーション内のすべてのデータを削除します。" + "n" + "よろしいですか?");
        		builder.setPositiveButton("削除", new DialogInterface.OnClickListener() {
        
        			@Override
        			public void onClick(DialogInterface dialog, int which) {
        				db = helper.getWritableDatabase();
        				db.delete(tableName, null, null);
        
        				Intent intent = new Intent(MainActivity.this,
        						MainActivity.class);
        				startActivity(intent);
        			}
        		});
        		builder.setNegativeButton("キャンセル",
        				new DialogInterface.OnClickListener() {
        
        					@Override
        					public void onClick(DialogInterface dialog, int which) {
        						dialog.dismiss();
        					}
        				});
        		builder.setCancelable(true);
        		alertDialog = builder.create();
        		alertDialog.show();
        	}
        }
        

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

        はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search