我有一个自定义列表视图,想要在listview行上执行click事件,并希望让用户定义类对象来执行下一个操作。以下是我试过的代码
ListView tInfoListView = (ListView)findViewById(R.id.tableInfoList);
tInfoListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
System.out.println("Inside");
Toast.makeText(this, "Clicked Now", Toast.LENGTH_SHORT).show();
}
});
我也尝试过这样的
tInfoListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
System.out.println("Inside");
Object o = parent.getItemAtPosition(position);
System.out.println("*********"+o);
}
});
但没有任何效果。此外,我还将以下属性设置为listview行上使用的textviews。
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
但仍然没有奏效。请指导我,我在哪里做错了。
答案 0 :(得分:0)
您可以尝试在初始化时设置这些侦听器,因为每次用户单击列表行时,您似乎都在初始化视图.....
答案 1 :(得分:0)
在您使用的自定义适配器中,在getView()方法中,将OnClickListener设置为您在getView()方法中返回的convertView,如下所示。
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.grid_item, null);
}
convertView.setOnClickListener(onClickListener);
return convertView;
}
答案 2 :(得分:0)
您可能在行布局中具有可聚焦视图,例如,按钮。
在行布局中使用android:descendantFocusability