0

我的 android 程序中有两个挑战,如下所列,请帮助我。

  1. 假设我在 MainActivity 中启动了一个线程 A ,并根据线程 A 中是否满足某个条件
    ,必须关闭整个应用程序。(因为 finish() 仅在 Activity 中可用,不能从线程访问)

2.在 MainActivity 我有一个 EditText。我按下的每个字母都设置为通过蓝牙套接字传输以通过蓝牙 StreamCONnection 到达 PC。

因此,我需要获取我在 EditText 中键入的每个字母(单个字符),并将其存储在 char 变量中。(它还应该考虑退格按钮,这意味着没有输入任何字母)。

当用户在 EditText 中键入一个字母时,在 MainActivity 中初始化一个 char 变量(单个字母),并且正在运行的线程“A”将获取 char 变量的值并将其发送到套接字输出流并清除 char 变量,以便新输入的字母可以存储用于后续的套接字流发送。

因此,我对第 2 点的问题是,如何获取 EditBox 的最后一个键入的字符,同时考虑要忽略的退格键。

我用谷歌搜索了很多,也提到了类似的帖子(Link1)和Link2,但我无法成功实现它。

(PS:对不起,我写得很详细,而不是粘贴片段,因为我的程序有点大,可能会混淆我的正确问题是什么)

4

2 回答 2

1

我的建议是:

1)如果满足条件,使用 Handler 对 UI 线程进行回调。从那里,您可以调用 finish() 方法。

2) 我会在 onKeyListener 上为 Edittext 实现。在该侦听器中,您可以侦听您想要的任何按键(字符或其他)。

希望有帮助。

于 2013-07-04T20:45:36.000 回答
1

1) finish() 是 Activity 对象上的一个函数。如果线程是 Activity 的子类,它可以掉它。如果 Thread 有对 Activity 的引用,它可以调用 activityReference.finish()。Finish() 是以编程方式结束活动的唯一方法。

2) 使用 TextWatcher 并将其添加到 EditText。每当键入字符时,它都会告诉您。您可以弄清楚新数据是什么并对其进行处理。

于 2013-07-04T20:41:02.333 回答