gpt4 book ai didi

java - 如何从线程获取数据到另一个类

转载 作者:行者123 更新时间:2023-12-02 11:25:30 25 4
gpt4 key购买 nike

帮助从main Activity中的线程t获取数据(tdate)...

    btn_in = (Button) findViewById(R.id.btn_insert);
btn_in.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});

Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tdate = (TextView) findViewById(R.id.date);
long date = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy\nhh-mm-ss a");
String dateString = sdf.format(date);
tdate.setText(dateString);
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
}

到类registerUser...(tdate)

我是 android 和 java 新手...

谁能帮助我学习。

private void registerUser() {
String datetime = tdate.getText().toString().trim().toLowerCase();
register(datetime);
}

最佳答案

如果您的线程位于其他 Java 类中,您可以创建一个新接口(interface),例如:

public interface OnTimeReceived {
void onTimeReceived(String time);
}

在您的 MainActivity 上,向此监听器添加实现,实现该方法,然后在回调中将文本设置为您的 textView。

然后在线程上只需调用“mListener.onTimeReceived(dateString)”即可更新您的 View 。

例如:

public class MainActivity implements OnTimeReceived {
...

@Override
public void onTimeReceived(String date) {
mTextView.setText(date);
}

...
}

当您创建线程类时,请在构造函数中提供 Activity 的监听器。

关于java - 如何从线程获取数据到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49667693/

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