tools.jar に追加しました tools.jar(Tools/Tools2/TestArrayAdapter/AndroidTools) 当たり前ですが、インスタンスにすると static メソッドに渡していた Activity をインスタンス内で保持できるので、引数が一つ減る事になります。しかし、これで各処理に Activity が密接に結びついている事が解ってかつ static と インスタンスの違いも明確になる『初心者訓練用』の色が明確になったテストライブラリセットとなりました。 AndroidTools.java
package jp.android.work; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.view.View; import android.widget.Button; import android.widget.Toast; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Serializable; /** * Created by lightbox on 2015/07/06. */ public class AndroidTools { private Activity context = null; public AndroidTools(Activity context) { this.context = context; } // 確認 メッセージボックス( メッセージのみ ) public void messageBox(String message, final Tools.OnMessageBoxListener listener) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setTitle("確認"); alertDialogBuilder.setMessage(message); alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (listener != null) { listener.onMessageBoxYesListener(); } } }); alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { if (listener != null) { listener.onMessageBoxNoListener(); } } }); alertDialogBuilder.setCancelable(true); // アラートダイアログを作成します AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } // YES or NO メッセージボックス( タイトルとメッセージ両方指定) public void messageBox(String title, String message, final Tools.OnMessageBoxListener listener) { // ダイアログ作成用オブジェクト作成 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setTitle(title); alertDialogBuilder.setMessage(message); // YES ボタン作成 alertDialogBuilder.setPositiveButton("YES", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (listener != null) { listener.onMessageBoxYesListener(); } } }); // NO ボタン作成 alertDialogBuilder.setNegativeButton("NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (listener != null) { listener.onMessageBoxNoListener(); } } }); alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { if (listener != null) { listener.onMessageBoxNoListener(); } } }); alertDialogBuilder.setCancelable(true); // アラートダイアログを作成します AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } public void callBrowser(String url) { // ブラウザの呼び出し Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); if (intent.resolveActivity(context.getPackageManager()) != null) { context.startActivity(intent); return; } // 対応するアプリが無い Tools.longToast( context, "ブラウザを呼び出せません" ); return; } // 短いトースト public void shortToast(String message) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } // 長いトースト public void longToast(String message) { Toast.makeText(context, message, Toast.LENGTH_LONG).show(); } // 単純なアクティビテイの呼び出し public void callActivity( Class<?> cls, int requestCode) { // Activity呼び出し Intent intent = new Intent(context, cls); context.startActivityForResult(intent, requestCode); } // オブジェクトを引き渡しての呼び出し public void callActivity( Class<?> cls, int requestCode, String name, Serializable data) { // Activity呼び出し Intent intent = new Intent(context, cls); intent.putExtra(name,data); context.startActivityForResult(intent, requestCode); } // OK で終了 public void okFinish(Intent intent) { context.setResult(context.RESULT_OK, intent); context.finish(); } // CANCELED で終了 public void cancelFinish(Intent intent) { context.setResult(context.RESULT_CANCELED, intent); context.finish(); } // Private な アプリデータの保存 public void putPreferences(String target, String key, String data) { SharedPreferences sp = context.getSharedPreferences(target, context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString(key, data); editor.commit(); } // Private な アプリデータの読み込み public String getPreferences( String target, String key) { SharedPreferences sp = context.getSharedPreferences(target, context.MODE_PRIVATE); return sp.getString(key, "_nodata"); } // 汎用型コントロール参照 public <T> T useView(int id) { T view = null; view = (T) context.findViewById(id); return view; } // ボタン用コントロール参照( イベント引数付き ) public Button useButton(int id, View.OnClickListener listener) { Button button = (Button) context.findViewById(id); if (listener != null) { button.setOnClickListener(listener); } return button; } // ボタン用コントロール参照( イベントなし ) public Button useButton(int id) { Button button = (Button) context.findViewById(id); return button; } // テキストファイル( プライベート書き込み ) public void saveText(String name, String text) throws Exception { FileOutputStream outStream = context.openFileOutput(name, android.content.Context.MODE_PRIVATE); OutputStreamWriter writer = new OutputStreamWriter(outStream); writer.write(text); writer.flush(); writer.close(); } // テキストファイル( 読み込み ) public String loadText(String name) throws Exception { FileInputStream fis = context.openFileInput(name); int size = fis.available(); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); StringBuffer all_string = new StringBuffer(size); String str = null; while ((str = br.readLine()) != null) { // 初回以外は前に改行を挿入する if (!all_string.toString().equals("")) { all_string.append("\n"); } all_string.append(str); } br.close(); return all_string.toString(); } }
関連する記事
|
【Android Studio 2の最新記事】
- Android : WebView 経由のデータベースアプリケーション
- Android で WebView を使ってWEBにあるデータベースのデータを取得する為のクラス
- WebView で JavaScript にデータを渡したい時に注意する事
- シンプル Android Data Binding : Android Studio 2.2 / 古い定義との違いと、以前のプロジェクトでエラーが出る場合の対処
- Android Studio で、ListView アプリケーションを作成するテンプレート
- Android : Data Binding で ListView へのデータ表示を凄く簡単にする
- Android Studio で理解不能なエラーが出た時の対処方法 : Invalidate Caches / Restart
- Android : TabHost のタブに下から上へのアニメーションを設定して、include で同一画面を使用するので 回転しないように AndroidMainfest で設定する
- Android : TabHost 内の各 TabSpec 内にある TextView の 端末回転時における保存と復帰
- Android の 端末回転時の EditText と TextView の違い
- ViewPager 内のイベントで設定した TextView の値を保持する Fragment 処理
- ExpandableListView を使用して、タップした時に明細データ表示する
- カスタム・リストビュー・ダイアログ : DialogFragment 内の ListView を ArrayAdapter でカスタムする
- カスタム・リストビュー・ダイアログ : ダイアログ内の ListView を ArrayAdapter でカスタムする
- AlertDialog.Builder の setItems(int itemsId, DialogInterface .OnClickListener listener) を使用した、ListVie..
- AsyncTask<Params, Progress, Result> の Progress を無しにして、onPostExecute 内の処理を interface を使って MainA..
- javamail-android + AsyncTask でメール送信を行う為のテンプレート
- tools.jar の callHttpGet のテストと include による画面再利用と HttpPost クラスで掲示板書き込み / Android Studio
- Android の Spinner に関するいろいろな実装と知識 / Android Studio
- AsyncTask を継承して、Drawable を取得する専用クラスを作成する : Android Studio