index.uts 2.5 KB
Newer Older
杜庆泉's avatar
杜庆泉 已提交
1 2 3 4 5 6 7


import Toast from 'android.widget.Toast';
import AlertDialog from 'android.app.AlertDialog';
import DialogInterface from 'android.content.DialogInterface';
import EditText from 'android.widget.EditText';

打打卡夫卡's avatar
打打卡夫卡 已提交
8
@Suppress("UNUSED_PARAMETER")
9 10
export function showAlert(_title : string | null, _message : string | null, _result : (index : Number) => void) {
	let uiRunable = new DialogUIRunnable(null, _title!, _message!, "", false);
杜庆泉's avatar
杜庆泉 已提交
11
	UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
12
}
杜庆泉's avatar
杜庆泉 已提交
13

打打卡夫卡's avatar
打打卡夫卡 已提交
14
@Suppress("UNUSED_PARAMETER")
15 16
export function showPrompt(_title : string | null, _message : string | null, _placeholder : string | null, success : (content : string) => void) {
	let uiRunable = new DialogUIRunnable(success, _title!, _message!, _placeholder!, true);
杜庆泉's avatar
杜庆泉 已提交
17 18 19
	UTSAndroid.getUniActivity()!.runOnUiThread(uiRunable)
}

20 21


杜庆泉's avatar
杜庆泉 已提交
22
/**
23 24 25 26 27 28 29 30
	* 用户输入对话框监听器
	*/
class DialogListener extends DialogInterface.OnClickListener {

	inputET : EditText
	callback : (content : string) => void

	constructor(et : EditText, cb : (content : string) => void) {
杜庆泉's avatar
杜庆泉 已提交
31 32 33 34
		super();
		this.callback = cb;
		this.inputET = et;
	}
35 36

	override onClick(_dialog : DialogInterface, _arg1 : Int) : void {
杜庆泉's avatar
杜庆泉 已提交
37 38 39
		//数据获取
		let input = this.inputET.getText().toString()
		this.callback(input);
40 41 42
		Toast.makeText(UTSAndroid.getUniActivity(), input,
			Toast.LENGTH_LONG).show();

杜庆泉's avatar
杜庆泉 已提交
43 44 45 46 47
	}
}


/**
48 49
	* Dialog ui任务封装
	*/
杜庆泉's avatar
杜庆泉 已提交
50 51
class DialogUIRunnable extends Runnable {

52 53 54 55 56 57 58
	callback ?: (content : string) => void = null
	title : string
	message : string
	placeholder : string
	needInput : boolean

	constructor(success ?: (content : string) => void, title : string, message : string, placeholder : string, needInput : boolean) {
杜庆泉's avatar
杜庆泉 已提交
59
		super();
60
		if (success != null) {
杜庆泉's avatar
杜庆泉 已提交
61 62
			this.callback = success
		}
63

杜庆泉's avatar
杜庆泉 已提交
64 65 66 67 68 69
		this.title = title
		this.message = message
		this.placeholder = placeholder
		this.needInput = needInput
	}

70 71 72
	override run() : void {

		if (this.needInput) {
杜庆泉's avatar
杜庆泉 已提交
73 74
			let et = new EditText(UTSAndroid.getUniActivity());
			et.setText(this.placeholder);
75

杜庆泉's avatar
杜庆泉 已提交
76
			new AlertDialog.Builder(UTSAndroid.getUniActivity())
77 78 79 80 81 82
				.setTitle(this.title)
				.setMessage(this.message)
				.setIcon(android.R.drawable.ic_dialog_info).setView(et)
				.setPositiveButton("确定", new DialogListener(et, this.callback!))
				.setNegativeButton("取消", null).show();
		} else {
杜庆泉's avatar
杜庆泉 已提交
83
			new AlertDialog.Builder(UTSAndroid.getUniActivity())
84 85 86 87
				.setTitle(this.title)
				.setMessage(this.message)
				.setIcon(android.R.drawable.ic_dialog_info)
				.setNegativeButton("取消", null).show();
杜庆泉's avatar
杜庆泉 已提交
88 89 90
		}


91 92
	}
};