gpt4 book ai didi

android - onCreate 之外的 TextView.setText 不起作用

转载 作者:行者123 更新时间:2023-11-29 17:49:41 25 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,我想在其中修改 TextView 。当我在 onCreate() 方法中编辑它时它工作正常,但我想在用户单击屏幕时修改它。现在我知道点击屏幕的功能是有效的,但是文本没有被修改。

onCreate() 方法中(工作正常):

    main = (TextView) findViewById(R.id.textView1_hidden_buttons);
main.append(" " + newString);

点击屏幕监听器:

class MyGestureListener extends GestureDetector.SimpleOnGestureListener {

// Clicking on the screen increases counter taps
@Override
public boolean onDown(MotionEvent event) {
synchronized (this) {
if (busy)
return true;
busy = true;
}

main = (TextView) findViewById(R.id.textView1_hidden_buttons);
main.setText("Waiting for other players");

try {
JSONObject json = new JSONObject();
json.put("client", "ready");

ConnectionHandler.send(json.toString());

String serverResponse = ConnectionHandler.receive();

Intent intent;
intent = new Intent(MainActivity.this,
OrderedButtonsActivity.class);
...

应用正在等待 ConnectionHandler.receive()。在调用修改文本后,我为应用程序调用了一个 wait() 方法,并在一段时间后调用了另一个 Activity 。有一小会儿(半秒左右)我可以看到修改后的文本。为什么会发生这种情况?如何修复它以便在单击屏幕后修改文本?

最佳答案

我在这里看到了几个问题:

1) 您正在尝试在不extends Activity 的类中使用findViewById()(或任何具有findViewById()

2) 从您的问题看来,您正在导致 UI Thread 休眠。请不要这样做。卡住 UI Thread 是糟糕的用户体验。 UI Thread 卡住的每一毫秒, unicorn 和小猫都会死亡。

如果你在 onCreate() 中执行它,它之所以有效,是因为 Activity 有一个 findViewById()

关于android - onCreate 之外的 TextView.setText 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23848182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com