ListView getChildAt为不可见元素提供空指针(Android)

ListView getChildAt为不可见元素提供空指针(Android),android,listview,nullpointerexception,Android,Listview,Nullpointerexception,当我从listview中选择一个在创建活动时不可见的项时,它会引发异常,因为不可见的项为null。正如你所看到的,我已经知道为什么这个问题会出现异常,我要感谢给我解决这个问题的建议的人。这是密码 public void myFunction(View view) { int i, i2 = 0; // get the row the clicked button is in ListView lerroa = (ListView) view.get

当我从listview中选择一个在创建活动时不可见的项时,它会引发异常,因为不可见的项为null。正如你所看到的,我已经知道为什么这个问题会出现异常,我要感谢给我解决这个问题的建议的人。这是密码

public void myFunction(View view) {
        int i, i2 = 0;
        // get the row the clicked button is in
        ListView lerroa = (ListView) view.getParent();
        i = lerroa.getPositionForView(view);
        System.out.println(i + 1);


        LinearLayout ll = (LinearLayout) lerroa.getChildAt(i);
        TextView pedido = (TextView) ll.getChildAt(0);
}

是否有更简单的方法在单击的项目上查看文本?

我已经解决了这个问题

为了同时显示列表视图中不可见的项,那些导致空指针的项,我替换了导致应用程序崩溃的代码行。这是:

替换:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i);
对于这一个:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i -lerroa.getFirstVisiblePosition()).findViewById(R.id.LinearLayout3);
getVisiblePosition允许我们处理LinearLayout中显示的第一个项目,从而避免任何空指针

我知道这有点粗制滥造,这并不是我想要实现的最好的编码方式。尽管如此,我已经在互联网上多次看到相同的错误,但没有任何正确的answare。我希望这对其他人有用


有一个很好的代码

我已经解决了这个问题

为了同时显示列表视图中不可见的项,那些导致空指针的项,我替换了导致应用程序崩溃的代码行。这是:

替换:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i);
对于这一个:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i -lerroa.getFirstVisiblePosition()).findViewById(R.id.LinearLayout3);
getVisiblePosition允许我们处理LinearLayout中显示的第一个项目,从而避免任何空指针

我知道这有点粗制滥造,这并不是我想要实现的最好的编码方式。尽管如此,我已经在互联网上多次看到相同的错误,但没有任何正确的answare。我希望这对其他人有用


有一个很好的代码

您想要实现什么?我想检索ListView中单击的位置I处TextView的内容。创建活动时可见的内容不会通过异常显示,但不可见的内容是。您想实现什么?我想检索ListView中单击的位置I处的TextView内容。创建活动时可见的不通过异常,但不可见的是。您好,这对您有什么作用?我得到一个空指针,当然是因为getChildAt返回空。e、 g.我有一个包含四个元素的列表,第一个到第三个可见,如果我想要第四个,当我执行
getChildAt(3-0)
时,它返回null。我怀疑这只起作用,因为您没有在视图中看到第一个项目,并且您想要选择最后一个项目。e、 g.如果您有四个元素,并且从第二个元素看到第四个元素,并且您希望选择第三个元素(实际上是第二个可见元素),那么在您的情况下
getChildAt(2-1)
是有意义的。您好,这对您有何作用?我得到一个空指针,当然是因为getChildAt返回空。e、 g.我有一个包含四个元素的列表,第一个到第三个可见,如果我想要第四个,当我执行
getChildAt(3-0)
时,它返回null。我怀疑这只起作用,因为您没有在视图中看到第一个项目,并且您想要选择最后一个项目。e、 g.如果您有四个元素,并且从第二个元素看到第四个元素,并且您希望选择第三个元素(实际上是第二个可见元素),那么在您的情况下
getChildAt(2-1)
是有意义的。