Listview孩子应该链接到另一个孩子

时间:2013-10-11 08:54:06

标签: android expandablelistview

我基于this链接创建了一个可扩展的列表视图。它的工作正常。现在我想要的是

1)如何使子视图链接另一个子子视图

2)子子视图应该作为窗口上的新列表视图打开(视图的右侧)here是我期望的布局。我用Google搜索但无法找到如何实现这一目标。请帮助我实现这一目标。提前谢谢。

2 个答案:

答案 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)

您需要指定并处理onClickListView行项目事件。 然后,您将根据点击的项目打开一个新的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);
    }

}