这是我的情况: 我想将一个监听器传递给一个视图生成器来使用它。但问题是在我的监听器中我想使用该View来获取一些数据。一些如何扭曲...... 是一种预先定义View的方法,就像Listener应该附加到的接口一样?
AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) {
//but I can not do this and use spinner cause it is not defined
String text = spinner.getSelectedStrings().toString();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {}
};
generateSpinner(attributes, listener);
我正在研究android中的MVC项目,这个问题从那里出来,因为我应该将创建和逻辑分离为View和Presenter。所以我的演示者强制视图生成一个给定逻辑的微调器。
答案 0 :(得分:0)
您自己已经回答了一半以上的问题。建立一个这样的界面:
public interface MyViewCallback
{
void run(View view);
}
现在,您可以存储此interface
的实例,并在需要时从run()
的范围调用其View
方法 - 例如,
MyViewCallback callback;
// ... on some action
callback.run(this);
您可以为此callback
创建一个setter,并使用它来注册回调。