当我从列表视图中选择其中一个在创建活动时不可见的项时,它会抛出一个异常,因为那些不可见的是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);
}
在单击的项目上获取textview的更简单方法是什么?
答案 0 :(得分:6)
我已经解决了这个问题。
为了显示列表视图中不可见的项目,导致NullPointers的项目,我已经替换了崩溃应用程序的代码行。这是:
替换:
LinearLayout ll = (LinearLayout) lerroa.getChildAt(i);
对于这个:
LinearLayout ll = (LinearLayout) lerroa.getChildAt(i -lerroa.getFirstVisiblePosition()).findViewById(R.id.LinearLayout3);
getVisiblePosition允许我们使用LinearLayout中显示的第一个项目,因此避免任何NullPointer。
我知道这有点粗制滥造,这不是编码我想要实现的最佳方式。尽管如此,我在互联网上看到了很多次同样的错误,但没有任何正确的answare。我希望这对其他人有用。
有一个很好的代码!