ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
tools.jar ( Tools.java, Tools2.java, TestArrayAdapter.java, AndroidTools.java )
日時: 2016/10/14 16:55
名前: lightbox



tools.jar



Tools.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.os.AsyncTask;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.TimeZone;

public class Tools {

	public interface OnAsyncTaskListener {
		abstract public void onAsyncTaskListener(String s);
	}

	public static void callHttpGet(String url, String charset, final OnAsyncTaskListener listener) {
		new AsyncTask<String, Void, String>() {

			// 非同期処理
			@Override
			protected String doInBackground(String... params) {
				String result = null;
				result =
					Tools.httpGet(
						params[0],
						params[1],
						null
					);

				return result;
			}

			// UI スレッド処理
			@Override
			protected void onPostExecute(String json) {
				super.onPostExecute(json);

				listener.onAsyncTaskListener(json);

			}
		}.execute(url, charset);
	}

	public interface OnMessageBoxListener {
		abstract public void onMessageBoxYesListener();

		abstract public void onMessageBoxNoListener();
	}

	// 確認 メッセージボックス( メッセージのみ )
	public static void messageBox(Activity context, String message, final 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 static void messageBox(Activity context, String title, String message, final 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 static void callBrowser(Activity context, 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 static void shortToast(Activity context,String message) {
		Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
	}
	// 長いトースト
	public static void longToast(Activity context,String message) {
		Toast.makeText(context, message, Toast.LENGTH_LONG).show();
	}

	// 単純なアクティビテイの呼び出し
	public static void callActivity(Activity context, Class<?> cls, int requestCode) {
		// Activity呼び出し
		Intent intent = new Intent(context, cls);
		context.startActivityForResult(intent, requestCode);

	}

	// オブジェクトを引き渡しての呼び出し
	public static void callActivity(Activity context, 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 static void okFinish(Activity context,Intent intent) {
		context.setResult(context.RESULT_OK, intent);
		context.finish();
	}
	// CANCELED で終了
	public static void cancelFinish(Activity context,Intent intent) {
		context.setResult(context.RESULT_CANCELED,intent);
		context.finish();
	}

	// Private な アプリデータの保存
	public static void putPreferences(Activity context, 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 static String getPreferences(Activity context, String target, String key) {
		SharedPreferences sp = context.getSharedPreferences(target, context.MODE_PRIVATE);
		return sp.getString(key, "_nodata");

	}

	// 日付・時間文字列取得
	public static String getDateString(String format) {

		TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		sdf.setTimeZone(tz);
		String result = sdf.format(date);

		return result;

	}

	// 指定した URL へ 任意の charset で処理
	public static String httpGet(String targetUrl, String targetCharset, Map<String, String> params) {

		StringBuffer web_data = new StringBuffer();

		try {
			// Query String の作成( 必要無ければ引数を null とする )
			String data = "";
			if (params != null) {
				Iterator<String> it = params.keySet().iterator();
				String key = null;
				String value = null;
				while (it.hasNext()) {
					key = it.next().toString();
					value = params.get(key);
					if (!data.equals("")) {
						data += "&";
					}
					data += key + "=" + URLEncoder.encode(value, targetCharset);
				}
				if (!data.equals("")) {
					targetUrl = targetUrl + "?" + data;
				}
			}

			// **********************************************
			// インターネットへの接続
			// **********************************************
			// 読み込む WEB上のターゲット
			URL url = new URL(targetUrl);
			// 接続オブジェクト
			HttpURLConnection http = (HttpURLConnection) url.openConnection();
			// GET メソッド
			http.setRequestMethod("GET");
			// 接続
			http.connect();

			// **********************************************
			// ストリームとして読み込む準備
			// **********************************************
			// 以下読み込み3点セット InputStream / InputStreamReader / BufferedReader
			InputStream input_stream = http.getInputStream();
			// UTF-8 でリーダーを作成
			InputStreamReader input_stream_reader = new InputStreamReader(input_stream, targetCharset);
			// 行単位で読み込む為の準備
			BufferedReader buffered_reader = new BufferedReader(input_stream_reader);

			// **********************************************
			// 行の一括読み込み
			// **********************************************
			String line_buffer = null;
			// BufferedReader は、readLine が null を返すと読み込み終了
			while (null != (line_buffer = buffered_reader.readLine())) {
				web_data.append(line_buffer);
				web_data.append("\n");
			}

			// **********************************************
			// 接続解除
			// **********************************************
			http.disconnect();
		} catch (Exception e) {
			// 失敗
			System.out.println(e.getMessage());
		}
		return web_data.toString();
	}
}
メンテナンス

Tools2.java ( No.1 )
日時: 2016/05/30 18:31
名前: lightbox


日時: 2016/05/30 18:31
名前: lightbox
package jp.android.work;

import android.app.Activity;
import android.view.View;
import android.widget.Button;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 * Created by lightbox on 2015/06/19.
 */
public class Tools2 {

	// 汎用型コントロール参照
	public static <T> T useView(Activity context, int id) {
		T view = null;
		view = (T) context.findViewById(id);
		return view;
	}
	public static <T> T useView(View context, int id) {
		T view = null;
		view = (T) context.findViewById(id);
		return view;
	}

	// ボタン用コントロール参照( イベント引数付き )
	public static Button useButton(Activity context, int id, View.OnClickListener listener) {
		Button button = (Button) context.findViewById(id);
		if (listener != null) {
			button.setOnClickListener(listener);
		}
		return button;
	}

	// ボタン用コントロール参照( イベントなし )
	public static Button useButton(Activity context, int id) {
		Button button = (Button) context.findViewById(id);
		return button;
	}

	// テキストファイル( プライベート書き込み )
	public static void saveText(Activity context, 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 static String loadText(Activity context, 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();

	}
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
TestArrayAdapter.java ( No.2 )
日時: 2016/05/30 18:31
名前: lightbox
package jp.android.work;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;

/**
 * Created by lightbox on 2015/06/27.
 */
public class TestArrayAdapter<T> extends ArrayAdapter<T> {

	public interface OnGetViewListener {
		abstract public View onGetViewListener(int position, View convertView, ViewGroup parent);
	}

	private OnGetViewListener listener = null;

	public TestArrayAdapter(Context context, int resource,OnGetViewListener listener) {
		super(context, resource);
		this.listener = listener;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		if ( listener != null ) {
			return listener.onGetViewListener(position, convertView, parent);
		}
		return super.getView(position, convertView, parent);
	}
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
AndroidTools.java ( No.3 )
日時: 2016/05/30 18:32
名前: lightbox
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();

	}
}
このアーティクルの参照用URLをクリップボードにコピー メンテナンス