我在Android上写无线电播放器。我想在GUI中使用RDS功能和显示文本。我有管理无线电及其功能的对象。当某些内容发生变化时,比如RDS文本,我想在Activity里面的简单TextBox中发布它。我如何通知GUI其中一个属性已更改(并发送新值),我必须刷新该属性? Android内部是否有提供此类异步通知功能的机制?我读过
PropertyChangeListener
但这是JavaBeans的机制,我可以采用吗?如果是,请告诉我如何在我的案例中注册和使用更改侦听器。
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用Handler完成此项工作。以下是一些例子:
干杯
答案 2 :(得分:0)
创建一个这样的类:
abstract class RDSTextListener {
public abstract void onRDSTextChanged(String newText);
}
从您的活动中执行以下操作:
RDSTextListener listener = new RDSTextListener() {
public void onRDSTextChanged(String newText) {
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView)findViewById(R.id.your_text_view)).setText(newText);
}});
}
}
您必须将此侦听器传递给您的业务类。然后,业务类将在适当的时候调用on RDSTextChanged(),并且UI将被更新。
编辑:注意,这不使用接口。而是一个抽象类。我认为Android更友好,避免不必要的处理能力。