我有一个可扩展 ListView ,需要在有人单击组行时动态添加子行。最好的方法是向我的服务器发送一个 AsyncHttp 请求,服务器用我解析成的 json 和 Object.这样做的问题是,如果 json 为空,我需要在 OnClickGroupListener 上返回 true,如果 json 有数据,则需要返回 false。我该怎么做呢?
更新*******
我在我的代码中添加了以下内容:
private boolean childrenLoaded;
public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
if(!childrenLoaded){
getChildren(i);
}else{
return false;
}
return true;
}
public void getChildren(int position){
//HttpAsync request here
onSuccess(json){
childrenLoaded = true;
if (json has data){
listview.performclick(arguments for perform click);
}else{
exit
}
}
}
最佳答案
查看 OnGroupClickListener
文档,如果点击是由您处理的,您似乎只需要返回 true。
Returns
True if the click was handled
如果您想跟踪其他一些真/假结果(例如 json 响应的空值),它应该在概念上和字面上在其他地方处理。例如,您可以在点击发生时在列表项上显示一个小的进度指示器(返回 true
因为您显然处理了点击),并在您的网络请求完成时停止进度条成功或失败。
关于OnGroupClickListener 函数中的 Android Async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151950/