我正在尝试在OnItemClickListener
中使用ListView
方法,但由于ViewPager
拦截了触摸事件,因此未对其进行调用。
我试过
mPager.requestDisallowInterceptTouchEvent(false);
在我的FragmentActivity
和
lista.setDescendantFocusability(ListView.FOCUS_BLOCK_DESCENDANTS);
在ListFragment
中的onCreate方法中但没有任何反应。 (“lista”是我的ListView
)。
以下是OnItemClickListener
方法代码:
lista = (ListView) view.findViewById(id.list);
lista.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//It's not being called
}
});
前几天我只使用了Activities
而不是Fragments
(现在因为ViewPager
我需要它们)并且代码工作正常,所以我认为不需要xml。
编辑添加更多代码:
FragmentActivity
public class TabsFacturasActivity extends SherlockFragmentActivity {
private static class MyAdapter extends FragmentPagerAdapter {
private String[] titles = { "VER FACTURAS", "VER CONSUMO", "INTRODUCIR LECTURA" };
private final FragmentManager mFragmentManager;
private Fragment mFragmentAtPos0;
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
mFragmentManager = fragmentManager;
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: // Fragment # 0
return new FacturasFragment();
...
}
return null;
}
@Override
public int getCount() {
return titles.length;
}
@Override
public int getItemPosition(Object object)
{
if (object instanceof FacturasFragment && mFragmentAtPos0 instanceof DetallesFacturaFragment)
return POSITION_NONE;
return POSITION_UNCHANGED;
}
}
ListFragment
public class FacturasFragment extends ListFragment {
private ListView lista;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.activity_facturas, container, false);
...
lista = (ListView) view.findViewById(id.list);
lista.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//It's not being called
}
});
return view;
}
}
答案 0 :(得分:1)
我认为这个问题可能是由listView项引起的。如果您的listView项目包含可点击的视图(按钮,复选框等),则不会调用 OnItemClickListener 。