Android listview单击时崩溃(相对布局中的listview)

Android listview单击时崩溃(相对布局中的listview),android,android-layout,android-listview,Android,Android Layout,Android Listview,此程序在relativelayout中生成列表视图, Listview进展顺利,但当我点击一个项目时,它崩溃了(在这里,应该是祝酒词) 在调试模式下,代码在粗体行崩溃(即RelativeLayout relativeLayoutChild=(RelativeLayout)relativeLayoutParent.getChildAt(1);) 我认为您应该通过以下方式从布局(您选择的行)获取您的子窗口小部件: TextView tvId = (TextView) container.findVi

此程序在relativelayout中生成列表视图, Listview进展顺利,但当我点击一个项目时,它崩溃了(在这里,应该是祝酒词) 在调试模式下,代码在粗体行崩溃(即RelativeLayout relativeLayoutChild=(RelativeLayout)relativeLayoutParent.getChildAt(1);)


我认为您应该通过以下方式从布局(您选择的行)获取您的子窗口小部件:

TextView tvId = (TextView) container.findViewById(R.id.tv_id);
onItemClick()
方法中的第二个参数表示行视图(在您的示例中是lv_layout.xml)。每行都有自己的lv_layout.xml布局


因此,您可以通过此方法直接访问每行的每个子窗口小部件(它会在单击的位置自动返回整个rowView)。

我认为您应该通过以下方式从布局(您选择的行)中获取子窗口小部件:

TextView tvId = (TextView) container.findViewById(R.id.tv_id);
onItemClick()
方法中的第二个参数表示行视图(在您的示例中是lv_layout.xml)。每行都有自己的lv_layout.xml布局


因此,您可以通过此方法直接访问每行的每个子窗口小部件(它会在单击的位置自动返回整个rowView)。

更改以下行

 **RelativeLayout relativeLayoutChild = (RelativeLayout ) relativeLayoutParent.getChildAt(1);**


更改以下行

 **RelativeLayout relativeLayoutChild = (RelativeLayout ) relativeLayoutParent.getChildAt(1);**


视图容器
是您的lv_layout.xml
relativeLayoutChild
是不必要的,
relativeLayoutParent
的子级将是您的文本视图。您正在尝试将
tv\u coordination\u details
转换为相对位置。

视图容器是您的lv\u layout.xml
relativeLayoutChild
是不必要的,
relativeLayoutParent
的子级将是您的文本视图。您正试图将
tv\u-coordination\u-details
转换为一个相对的布局。

我不确定,但我认为您没有线性布局。LogCat输出告诉您正在尝试将TextView强制转换为RelativeLayout。。。删除错误行并尝试
TextView tvId=(TextView)relativeLayoutParent.getChildAt(0)我不确定,但我认为你没有一个线性布局。LogCat输出告诉您正在尝试将TextView强制转换为RelativeLayout。。。删除错误行并尝试
TextView tvId=(TextView)relativeLayoutParent.getChildAt(0)嘿,谢谢它现在工作了,但是你能解释一下我的方法有什么问题吗…嘿,谢谢它现在工作了,但是你能解释一下我的方法有什么问题吗。。。
TextView tvId = (TextView) container.findViewById(R.id.tv_id);
 **RelativeLayout relativeLayoutChild = (RelativeLayout ) relativeLayoutParent.getChildAt(1);**
 **TextView tv_coordinate_details= (TextView ) relativeLayoutParent.getChildAt(1);**
   TextView tvId = (TextView) relativeLayoutParent.getChildAt(0);