コメント |
ダウンロード : https://code.google.com/p/javamail-android/downloads/list
@DIV
package sample.lightbox.dialogtemplate;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private static Android_Sendmail as = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// メール送信オブジェクトを作成
as = new Android_Sendmail(
// https://myaccount.google.com/security?pli=1#connectedapps
// Gmail 側で安全性の低いアプリの許可を『有効』にする
"smtp.gmail.com",
// "smtp.mail.yahoo.co.jp",
// "smtp.live.com",
"465", // 465 または 587
"", // アカウント
"", // パスワード
"日本語ユーザ名"
);
MainActivity.this.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ダイアログ( フラグメントに渡す情報 )
ArrayList<String> dialog_param = new ArrayList<String>();
dialog_param.add("確認");
dialog_param.add("実行しますか?");
dialog_param.add("YES");
dialog_param.add("NO");
// ダイアログフラグメントを作成して表示
MyDialogFragment dialog = MyDialogFragment.builder(dialog_param);
// フラグメントとしてキャンセル可能
dialog.setCancelable(true);
// ダイアログの表示
dialog.show(getFragmentManager(), "dialog");
}
});
}
// ダイアログから呼び出されるイベント
public void dialogYesClick() {
Log.i("lightbox", "YES");
EditText et = (EditText) MainActivity.this.findViewById(R.id.editText);
String message = et.getText().toString();
as.SendMail(
"宛先メールアドレス",
"差出人メールアドレス",
"こんにちは",
message, new Android_Sendmail.SendMailed() {
@Override
public void onSendMailResult(String result) {
Log.i("lightbox", "結果:" + result);
}
});
}
// ダイアログから呼び出されるイベント
public void dialogNoClick() {
Log.i("lightbox", "NO");
}
// ダイアログフラグメント( static )
public static class MyDialogFragment extends DialogFragment {
// このメソッドは、MainActivity からインスタンスを作成する為に使用します
// ※ ユーザ専用のメソッドです( 名前まなんでもいいです )
// ※ フラグメントでは、通常のコンストラクタは使用不可
public static MyDialogFragment builder(ArrayList<String> param) {
MyDialogFragment f = new MyDialogFragment();
Bundle args = new Bundle();
// 情報をセット
args.putStringArrayList("param", param);
f.setArguments(args);
return f;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// 外部からの情報( システムが Daialog を再構築した時の為 )
ArrayList<String> param = getArguments().getStringArrayList("param");
builder.setTitle(param.get(0));
builder.setMessage(param.get(1));
builder.setPositiveButton(param.get(2),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// MainActivity を呼び出す
((MainActivity)getActivity()).dialogYesClick();
}
});
builder.setNegativeButton(param.get(3),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// MainActivity を呼び出す
((MainActivity)getActivity()).dialogNoClick();
}
});
return builder.create();
}
}
}
@END
@DIV
<uses-permission android:name="android.permission.INTERNET"/>
@END
[[モジュールの build.gradle]]
@DIV
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.0"
defaultConfig {
applicationId "sample.lightbox.dialogtemplate"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:22.2.1'
compile files('libs/mail.jar')
compile files('libs/additionnal.jar')
compile files('libs/activation.jar')
}
@END |