我基于this链接创建了一个可扩展的列表视图。它的工作正常。现在我想要的是
1)如何使子视图链接另一个子子视图
2)子子视图应该作为窗口上的新列表视图打开(视图的右侧)是我期望的布局。我用Google搜索但无法找到如何实现这一目标。请帮助我实现这一目标。提前谢谢。
答案 0 :(得分:0)
那么,您是否希望您的第一个孩子扩展到另一个ListView?或者只是打开另一个包含匹配ListView的Activity / Fragment?
如果您想要第一个,您可以为Childview设计一个CustomLayout,它在OnClick上展开,并将其内容更改为特定的ListView。
否则,您只需打开另一个包含数据的ListView,具体取决于单击第一个列表中的哪个子项。
好吧,我正在使用一些像那样放大ChildViews点击以显示详细信息。
我使用Class来包装名为Row的数据。这些行指示它们是否可单击,如果是,则ListView将允许对行进行单击。然后由类本身处理单击,使显示的文本更长(更详细)。并且为了重新布局项目,您需要调用notifyDataSetChanged。
@Override
public void onClick(Context context, MyExpandableListAdapter mela) {
this.setBig(!isBig());
mela.notifyDataSetChanged();
}
所以,我会在父类适配器的getView方法中处理行状态(扩展/正常),以决定我膨胀的childLayout。
会喜欢这样的东西
public View getView (args...) {
Object data = getItem(position);
if (data.isExpanded()) {
//inflate ListView Layout, create Addapter fill it....
} else {
//show some title or whatever to identify row.
}
}
答案 1 :(得分:0)
您需要指定并处理onClick
个ListView
行项目事件。
然后,您将根据点击的项目打开一个新的Activity
。
新活动的参数通过intent extras提供,新活动可以使用这些值从云中获取数据或处理值以显示某些结果。
我多次使用CustomAdapter
类来处理这种情况。
class Ocl implements OnClickListener{
@Override
public void onClick(View v) {
Intent intDetail = new Intent(getActivity(), PartDetail.class);
intDetail.putExtra(_ID, mParts[position].getSPr());
intDetail.putExtra(_LOT, mParts[position].getLotID());
intDetail.putExtra(_QTY, mParts[position].getQty());
intDetail.putExtra(_UID, mParts[position].getPartID());
startActivity(intDetail);
}
}