【问题标题】:Get listview position of inflated row获取膨胀行的列表视图位置
【发布时间】:2014-01-31 04:26:04
【问题描述】:

0当我单击一个按钮时,我会在列表视图中填充一行。我膨胀的行包含两个按钮和一个图像视图。使用其中一个按钮,我可以从列表视图中删除膨胀的行。 我使用以下代码。

LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View vv = vi.inflate(R.layout.row_event_datetime, null);

ImageButton ib = (ImageButton) vv.findViewById(R.id.ivCancel);
ib.setOnClickListener(new OnClickListener() {   
        @Override
        public void onClick(View v) {   
            int i = ????
            ((LinearLayout) vv.getParent()).removeView(vv);
        }
    });  
View insertPoint = findViewById(R.id.llAddActEventMoments);
((ViewGroup) insertPoint).addView(vv, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));   

当我单击图像按钮 ivCancel 时,是否可以获得已删除行的列表视图中的位置?

【问题讨论】:

    标签: android listview layout-inflater


    【解决方案1】:

    您想要实现OnItemClickListener,而不是onClickListener。有关详细信息,请参阅this 参考。

    【讨论】:

    • 我无法在 ImageButton 上实现 OnItemClickListener。我必须在哪里实现 OnItemClickListener?
    • 您在 ListView 上设置了 onItemClickListener。
    • 对不起,我不会在列表视图中膨胀行,而是直接在线性布局中。我不知道这是否是正确的方法。但是是否有可能在 LinearLayout 中获得位置或者我应该重写我的代码?
    • 从你正在做的事情的声音来看,我认为使用 ListView 更有意义。但是,如果您要向线性布局添加项目,则始终可以为新视图设置唯一 ID,并遍历视图层次结构以查找位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多