嘿我想在自定义视图中的主要活动中获取实时数据更改。我想为视图实现一个监听器,这样每当我的主活动发生任何变化时,我的View就会知道并采取相应的行动。
以下是我的主要活动。
public void setChangeListener(OnChangeListener onChangeListener){
this.onChangeListener = onChangeListener;
}
public interface OnChangeListener{
void currentRadius(int r);
void currentSpeed(int s);
}
我在View as中初始化了相同的内容,
public CustomView extends View{
//CONSTRUCTORS
//EVERYTHING ELSE
//These are inside the init(Context context) method.
MainActivity mainActivity = new MainActivity();
mainActivity.setOnChangeListener(new MainActivity.OnChangeListener() {
@Override
public void currentR(int r) {
Log.d("R", ""+r);
}
@Override
public void currentS(int s) {
Log.d("S", ""+s);
}
});
}
但是这给了我
的NullPointerExceptiononChangeListener.currentR(//INTEGER VALUE);
onChangeListener.currentS(//INTEGER VALUE);
位于onProgressChanged
监听器内。
我想问的是,甚至可以使用Listener从Activity发送数据到View?如果是,那么任何指针都将受到赞赏。感谢。
答案 0 :(得分:1)
在MainActivity
CustomView mCustomeView = new CustomView(this); // or Resource id
在CustomView
public void currentR(int r) {
Log.d("R", ""+r);
}
public void currentS(int s) {
Log.d("S", ""+s);
}
然后从MainActivity
mCustomeView.currentR(integervalue);
mCustomeView.currentS(integervalue);
注意:如果您从该方法更改UI,请确保。它将在主UI线程中。另外,它会抛出错误
希望这个帮助
答案 1 :(得分:0)
MainActivity mainActivity = new MainActivity();
不要实例化活动。将MainActivity
上下文传递给视图并使用它来执行操作。
样本背景
Context context = MainActivty.this;