我想处理对屏幕键盘“确定”键的点击。为此,我在文本字段中添加了一个 KeyListener:
textField = (EditText) view.findViewById(R.id.text_field);
textField.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
boolean handled = false;
if (keyCode == KeyEvent.KEYCODE_ENTER) {
okPressed(view);
handled = true;
}
return handled;
}
});
Run Code Online (Sandbox Code Playgroud)
在 okPressed 方法中,我正在检查内容:
private void okPressed(View view) {
String value = textField.getText().toString().trim();
if (value.equals("")) {
Toast.makeText(view.getContext(), "Error", Toast.LENGTH_SHORT).show();
return;
}
}
Run Code Online (Sandbox Code Playgroud)
现在对于我的文本字段不为空的情况,一切正常。但是在字段不包含文本的情况下,我的 okPressed 方法会执行两次。但为什么?
我尝试选择名称为其他列内容的列。我正在使用MySQL 5.6。
假设我有“ table1”:
+------+------------+------------+---------------+---------------+
| id | val_int1 | val_int2 | val_string1 | val_string2 |
+------+------------+------------+---------------+---------------+
| 1 | 70 | 88 | xxx | yyy |
+------+------------+------------+---------------+---------------+
Run Code Online (Sandbox Code Playgroud)
和“ table2”:
+------+--------+----------+
| id | type | ref_id |
+------+--------+----------+
| 10 | i1 | 1 |
| 20 | s2 | 1 |
+------+--------+----------+
Run Code Online (Sandbox Code Playgroud)
我想要做的是:将table1和table2连接起来,table2.type字段包含要选择的table1中的列的名称。还有一个问题,类型字段仅包含我必须扩展的缩写。
这以以下SQL语句结束:
SELECT
t1.id,
IF(t2.type REGEXP 'i[0-9]+', REPLACE(t2.type, 'i', 'val_int'), REPLACE(t2.type, 's', 'val_string'))
FROM
table1 t1, table2 t2
WHERE
t1.id = t2.ref_id AND t1.id = …Run Code Online (Sandbox Code Playgroud) 我是一名 Delphi 程序员,我正在尝试编写一个应用程序,我想在其中显示来自 telnet 服务器的文本。为了输入要发送的命令,我使用了 TLabeledEdit,为了接收数据,我使用了 TIdTelnet。到目前为止,这没有任何问题。但是我应该使用哪个组件来显示文本以便输出看起来像控制台窗口?我应该使用多行 TLabel 并将其放入 TScrollBox 或 TMemo 并将 TabStop 属性设置为 False 还是有更好的解决方案?
我在锁定屏幕(iOS 11.2)上显示播放器控件时遇到问题。我已经完成的工作如下:
在AppDelegate.swift中,我初始化了AVAudioSession:
import MediaPlayer
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.beginReceivingRemoteControlEvents()
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
}
return true
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我的应用程序由一个具有多个视图的TabHostController组成。其中之一是音频选项卡。在那里,我尝试处理远程按钮:
import UIKit
import Foundation
import MediaPlayer
class AudioTabViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
self.audioPlayClicked()
return .success
}
commandCenter.pauseCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
self.audioPauseClicked()
return .success
}
commandCenter.stopCommand.addTarget { (event) …Run Code Online (Sandbox Code Playgroud) 我在找到正确的苹果脚本命令时遇到一些问题:我想打开给定文件或文件夹的信息窗口。我可以在 Finder 中通过 cmd+i 打开该窗口。现在我希望能够通过脚本文件自动执行此操作。我的代码实际上是这样的:
set aFile to POSIX file "/Users/xyz/Documents/test.rtf"
tell application "Finder" to open information window of aFile
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。错误消息表明文件“Macintosh HD 的信息窗口:Users:xyz:Documents:test.rtf”无法打开。
我想处理 XML 文档,并在 Foundation 包中找到了 XMLDocument 类,这似乎足以满足我的目的。但是我在使用它时遇到了一些问题。我有以下 Swift 代码:
import UIKit
import Foundation
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let doc = XMLDocument()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试编译这个小程序,则会收到错误“使用未声明的类型 'XMLDocument'”
斯威夫特 3,Xcode 8.2
如果能够获得一些帮助来在 MySQL 5.6 中实现触发器来记录更新的信息,那就太好了。
\n\n首先,这是我的数据表和日志表:
\n\nCREATE TABLE t1\n(id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,\n data1 VARCHAR(255) NOT NULL,\n data2 DECIMAL(5,2) NOT NULL\n);\n\nCREATE TABLE t1_log\n(action VARCHAR(10) NOT NULL,\n timestamp TIMESTAMP NOT NULL,\n id INTEGER NOT NULL,\n data1 VARCHAR(255) NOT NULL,\n data2 DECIMAL(5,2) NOT NULL,\n data1_old VARCHAR(255),\n data2_old DECIMAL(5,2)\n);\nRun Code Online (Sandbox Code Playgroud)\n\n这是我的触发器:
\n\nCREATE TRIGGER after_update_t1 AFTER UPDATE ON t1\n FOR EACH ROW\n BEGIN\n INSERT INTO t1_log (action,timestamp,id,data1,data2,data1_old,data2_old)\n VALUES (\'update\',NOW(),NEW.id,NEW.data1,NEW.data2,OLD.data1,OLD.data2);\n END;\nRun Code Online (Sandbox Code Playgroud)\n\n这样做没有任何问题。但这个解决方案的缺点是我需要为每个数据表提供一个日志表。 \xc2\xa0 \n因此我考虑是否可能只有一个带有 BLOB 字段的日志表,将更新的字段组合到 JSON 字符串并存储它在这个 BLOB 中。但如何为此定义触发器呢? …