访问ListView的项值时发生NullPointerException

时间:2012-05-06 15:39:02

标签: android android-listview

听众代码:

    lvSearch.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> adapter, View view, int position,
                long id) {
            LinearLayout ll = (LinearLayout) adapter.getChildAt(position);
            TextView tx = (TextView) ll.getChildAt(0);
            TextView tx1 = (TextView) ll.getChildAt(1);
            Log.i("abcValues", tx.getText().toString());

我在访问NullPointerException的项目值时收到ListView。它适用于启动项目值,但不适用于滚动后的项目。

2 个答案:

答案 0 :(得分:1)

getChildAt会返回可见行,当您滚动LisView并点击您将为方法getChildAt调用无效位置的行(您可以使用{的最大数量) {1}}方法是可见行数 - 1)。如果您想要点击行的布局中的父级,只需在代码中使用第二个参数getChildAt

arg1

答案 1 :(得分:0)

我认为你不能这样做。尝试从传递的视图中备份:

  LinearLayout row = (LinearLayout) arg1.getParent(); 
  TextView tx = (TextView) row.findViewById(R.id.tx_id_here);
  TextView tx1 = (TextView) row.findViewById(R.id.tx1_id_here);