ListView getChildAt为不可见元素提供NullPointer(Android)

MuG*_*GiK 0 android listview nullpointerexception

当我从列表视图中选择其中一个在创建活动时不可见的项时,它会抛出一个异常,因为那些不可见的是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);
}
Run Code Online (Sandbox Code Playgroud)

在单击的项目上获取textview的更简单方法是什么?

MuG*_*GiK 6

我已经解决了这个问题.

为了显示列表视图中不可见的项目,导致NullPointers的项目,我已经替换了崩溃应用程序的代码行.这里是:

更换:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i);
Run Code Online (Sandbox Code Playgroud)

对于这个:

LinearLayout ll = (LinearLayout) lerroa.getChildAt(i -lerroa.getFirstVisiblePosition()).findViewById(R.id.LinearLayout3);
Run Code Online (Sandbox Code Playgroud)

getVisiblePosition允许我们使用LinearLayout中显示的第一个项目,因此避免任何NullPointer.

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

有一个很好的代码!