Android 对于4.1+;,getView()实际上是获取;“全部”;手机视图?

Android 对于4.1+;,getView()实际上是获取;“全部”;手机视图?,android,listview,android-adapter,Android,Listview,Android Adapter,假设您有一个包含许多(比如)按钮的复杂单元格的ListView,您将实时动态地操作该单元格 用户点击一个按钮,“潜水!” 通过onClick,比如说在你的主要活动中,你可以开始你的日常活动 public void clickedDiveDiveDive(View v) { int position = feed.getPositionForView(v); ParseObject yourData = (ParseObject) list.getItemAtPositio

假设您有一个包含许多(比如)按钮的复杂单元格的ListView,您将实时动态地操作该单元格

用户点击一个按钮,“潜水!”

通过onClick,比如说在你的主要活动中,你可以开始你的日常活动

public void clickedDiveDiveDive(View v)
    {
    int position = feed.getPositionForView(v);
    ParseObject yourData = (ParseObject) list.getItemAtPosition(position);
所以你的职位没问题。而且很容易得到你的“数据”

当然,视图“v”是按钮,而不是整个单元格

然后我执行以下操作以获取整个单元格

View thatWholeCell = (View) adptr.getView(position, null, null);
然后,您可以根据需要获取持有者,并操纵单元格/列表

com.you.ViewHolder holder = (com.you.ViewHolder) (thatWholeCell.getTag());
STATE.do3DDrawingInCell = true;
STATE.workingCell = position;
STATE.depth = 3.141592;
etc
feedAdapter.notifyDataSetChanged();
这一切都很好,但我只是个新手,是吗

View thatWholeCell = (View) adptr.getView(position, null, null);
在那一步得到“整个细胞”的最佳方法是什么


问题是安卓在过去几代人中似乎变化很大,所以很难找到“关于此的最新信息。谢谢

答案是否定的。系统只分配适合屏幕的视图数量,您不应该依赖它。您应该始终在以下位置检索数据集的内容:position@blackbelt-谢谢你的回复。等等,用户刚刚单击了单元格中的按钮。事实上,该单元在当时必须可见。(至少,单元格的一部分-因为按钮“潜水!”必须在点击并创建事件的一侧可见。)请帮助我,我缺少什么?请记住,当
convertView
为null(getView的第二个参数)时,您再次膨胀视图。可能是listView.getChildAt(位置)与listView结合使用。getFirstVisiblePosition()可以达到这个目的