听众代码:
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
。它适用于启动项目值,但不适用于滚动后的项目。
答案 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);