Java 在ListView的X位置获取视图

Java 在ListView的X位置获取视图,java,android,listview,Java,Android,Listview,如何检索ListView中位置X处的视图?我不想膨胀一个新的单元格,只要检索屏幕上可见的单元格,以编程方式更改一些参数即可,因为ListView中的视图被重新使用/重新循环。没有直接的方法从ListView获取视图引用 如果要访问视图,需要扩展ArrayAdapter,然后覆盖getView。您应该在那里调用super.getView并编写自己的自定义代码 如果我们确实需要控制更多,请尝试扩展BaseAdapter或CursorAdapter,因为ListView中的视图是重复使用/重复使用的。

如何检索ListView中位置X处的视图?我不想膨胀一个新的单元格,只要检索屏幕上可见的单元格,以编程方式更改一些参数即可

,因为ListView中的视图被重新使用/重新循环。没有直接的方法从ListView获取视图引用

如果要访问视图,需要扩展
ArrayAdapter
,然后覆盖
getView
。您应该在那里调用
super.getView
并编写自己的自定义代码


如果我们确实需要控制更多,请尝试扩展
BaseAdapter
CursorAdapter

,因为ListView中的视图是重复使用/重复使用的。没有直接的方法从ListView获取视图引用

如果要访问视图,需要扩展
ArrayAdapter
,然后覆盖
getView
。您应该在那里调用
super.getView
并编写自己的自定义代码


如果您确实需要控制更多内容,而不是尝试扩展
BaseAdapter
CursorAdapter

找到了一个脏的解决方案:

  • 您应该能够识别生成的每一行。例如,添加visibility=gone的TextView,并在生成(或循环使用行)时在其中写入唯一值
  • 在listactivity调用getListView.setSelection(位置)到所需单元格中
  • 查看行的listview列表(直到显示)

    lv=getListView();
    
    对于(int i=0;i发现了脏的解决方案:

  • 您应该能够识别生成的每一行。例如,添加visibility=gone的TextView,并在生成(或回收该行)时在其中写入唯一值
  • 在listactivity调用getListView.setSelection(位置)到所需单元格中
  • 查看行的listview列表(直到显示)

    lv=getListView();
    
    对于(int i=0;i我不清楚您的问题。但就我所了解的,我建议您在线性布局中使用框架布局。您可以使用另一个框架布局来进行操作。

    我不清楚您的问题。但就我所了解的,我建议您在线性布局中使用框架布局。您可以使用其他帧布局进行操作

    lv=getListView();
    for (int i=0;i <lv.getChildCount();i++){
       if (((TextView)lv.findViewById(R.id.my_hidden_textview)).getText.equals(mykey)){
       // view found
       } else {
       // schedule another survey "soon"
       }
     }
    
    final int RETRY_DELAY=100;
    new Handler(){
        public void handleMessage(Message msg){
           if (msg.what<0) return; //something went wrong and retries expired
                   lv=getListView();
           for (int i=0;i <lv.getChildCount();i++){
             if (((TextView)lv.findViewById(R.id.my_hidden_textview)).getText.equals(mykey)){
                //result = lv.findViewById(R.id.my_hidden_textview);
             } else {
                this.sendEmptyMessageDelayed(msg.what-1,RETRY_DELAY);
             }
           }     
        }
    }.sendEmptyMessageDelayed(10,RETRY_DELAY);