我重写了方法getView()
,并且我试图在返回新视图的onSuccess()
方法中使视图膨胀。 onSuccess
返回的值是getView()
返回的值?
这是我的代码:
@Override
public View getView(final int position, final View view,final ViewGroup parent) {
aMethodWithAcallBack(new myCallBack(){
@Override
public void onSuccess(ArrayList<Content> contents) {
contentsList = contents ;
View mView = inflateIfRequired(view, position, parent);
if(getItem(position).content_type_id == 2) {
bindCard(view, getItem(position));
}
else {
if(getItem(position).content_type_id == 3)
bindVideo(view,getItem(position)) ;
}
return mView ;
});
@override
public void onFail() {
//
}
return view ;
}
您可能想知道为什么我使用了CallBack
,我必须使用它,因为contentsList项是我ListView
的项目,并且这个contentsList是由callBack
启动的因为它的元素是从服务器获取的。
答案 0 :(得分:0)
不,通过从onSuccess()返回值无法完成。因为没有主线程可以接收onSuccess()方法返回的值。
说明:
1)从其他地方调用getView()方法 - 这是一个线程让我们把它保持为主。
2)在这个主线程的执行流程中,执行异步回调方法aMethodWithAcallBack(),这个异步回调调用将是一个不同的线程。
3)执行getView()方法的主线程将通过执行return view ;
4)异步回调成功后,行return mView ;
将被执行,但没有主线程接收它。即我们不会有调用getView()方法的主线程。