卒業生が作成した電話帳アプリ
こんにちは!
当校のAndroidアプリケーション開発講座Basicの卒業生が作成したアプリを御紹介します。
尚、以下の点にご注意ください。
- 保証について
- 作成者について
当アプリは商用利用を目的としている訳ではありません。したがって、当アプリを模倣しアプリを作成および使用した場合に生じたトラブルに関しまして、当校では一切の責任を負いかねますので予めご了承ください。
ここでは卒業生の中でも比較的にプログラム経験がない方が作成したアプリを御紹介致します。
未経験でもここまで作れるようになります!
アプリの概要
このアプリは簡単な電話帳です。
時間の制約上、細かい機能等は付いていません。
このアプリではデータベースを用いており、標準の電話帳のデータベースからデータを抜き出して表示するものではありません。ちゃんと一から作ってくださいました!笑
アプリのキャプチャ
- アプリ起動時のスプラッシュ画面とメイン画面
- 電話帳登録
- 登録内容の修正および削除
- 登録データ削除
- メイン画面
- MainActivity.java
アプリを起動すると「スプラッシュ画面」というトップ画面が出てきて、数秒後にメイン画面に移動します。
メイン画面には「新規」ボタンと「データ削除」ボタンを設置しています。
メイン画面で「新規」ボタンをクリックするとこの画面が起動します。
項目を入力し「Button」ボタンをクリックすると登録されます。(※Buttonは「登録」にし忘れたそうです。笑)
なお、「メールアドレス」は省略可能ですが、「名前」と「電話番号」は必須項目としてプログラム上で設定してあります。
登録が終了するとメイン画面に追加されます。(下右図)
メイン画面で各項目をクリックすると、その項目の「詳細画面」に移動します。
「詳細画面」内にはボタンが3つ設定されています。
「編集」ボタンをクリックすると「上書き」や「削除」を行う画面(下右図)に移動します。
尚、ここでの「削除」ボタンはその項目のみを削除します。
ちゃんと確認用の「ダイアログ」というものも表示させています!!
「電話」ボタンをクリックすると通話を開始します。
「メール」ボタンをクリックすると標準メールアプリが立ち上がります。
この「データ削除」ボタンは登録しているすべてのデータを削除するボタンです。
こちらも削除前にちゃんと確認用の「ダイアログ」を表示させています!!
アプリのソースコード
このアプリは以下のような構成となっています。
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」があります。
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(); } }