这是我关于stackoverflow的第一个问题。
我的问题是,在我的Android APP中,有一个带有一些项目的ListView,点击每个项目将转移到一个新的片段。在Item本身中,有一个内部GridView来显示数组中的一些动态数据。
我担心的是,如果我单击该内部GridView的项目,它将不会调用ListView的onItemClick方法,并且不会执行任何操作(因为我已将其设置为禁用)。我想要的是将这些内部项目设置为不可点击,就像List Item中的TextView一样。
以下是我将适配器设置为父适配器的getView方法内部GridView的行。
MyListAdapter{
......
@Override
public View getView(int position, View convertView, ViewGroup parent) {
......
grid.setAdapter(new ArrayAdapter<>(this.mContext,R.layout.item,list));
grid.setEnabled(false);
return convertView;
}
谢谢。
答案 0 :(得分:0)
您是否尝试在列表视图中使用android:descendantFocusability =“blocksDescendants”。
答案 1 :(得分:0)
点击仅位于最顶层。您必须将侦听器添加到网格视图的每个项目。
答案 2 :(得分:0)
我有类似的设置。
使用ListView查看。 ListView的每个视图都有另一个Listview:
.ListView
...View1
......ListView
.........View1.1
...View2
......ListView
.........View2.1
我想点击View1.1&amp; 2.1将被重定向到其父ListView onItemClick()。
所以我尝试将它添加到嵌套的ListViews getDataRow()方法中:
((ListView) parent).performItemClick(finalScrapView, position, 0);
不工作。
我的解决方案是调用父ListView的activity / class中定义的方法。
嵌套的ListViews getDataRow()方法现在具有:
((MyActivity)parent).TestMethod();
MyActivity类方法定义为(例如):
public void teste()
{
Toast.makeText(App.getInstance().getApplicationContext(), "TESTE", Toast.LENGTH_SHORT).show();
}
不是最好的实现,但由于performItemClick无法正常工作,我无法永远陷入困境,我不得不这样做“欺骗”。
希望它有所帮助。