我有一個包含6個片段的片段活動。每個片段都是同一個類的實例(TalkListFragment - 它擴展了ListFragment)。現在在第一頁中,當一個項目被點擊時,該事件被觸發。一旦另一個頁面被刷新,然後點擊該項目什麼都不會發生。我也在XML文件中完成了listView.setDescendantFocusability(ListView.FOCUS_BLOCK_DESCENDANTS);
和相同的操作。Android:OnItemClickListener事件不會觸發頁面(FragmentActivity和ListFragment)
下面是代碼
public class TalkFragmentListActivity extends FragmentActivity implements OnClickListener, OnPageChangeListener
{
private SwipePagerAdapter pageAdapter = null;
private ViewPager viewPager = null;
.
.
private void initializePaging()
{
foodFragment = new TalkListFragment();
foodFragment.setTitle("Food");
foodFragment.setUrl("");
shoppingFragment = new TalkListFragment();
shoppingFragment.setTitle("Shopping");
shoppingFragment.setUrl("");
eventsFragment = new TalkListFragment();
eventsFragment.setTitle("Events");
eventsFragment.setUrl("");
nightlifeFragment = new TalkListFragment();
nightlifeFragment.setTitle("Night Life");
nightlifeFragment.setUrl("");
serviceFragment = new TalkListFragment();
serviceFragment.setTitle("Service");
serviceFragment.setUrl("");
conceirgeFragment = new TalkListFragment();
conceirgeFragment.setTitle("Conceirge");
conceirgeFragment.setUrl("");
pageAdapter = new SwipePagerAdapter(getSupportFragmentManager());
pageAdapter.addFragment(foodFragment);
pageAdapter.addFragment(shoppingFragment);
pageAdapter.addFragment(eventsFragment);
pageAdapter.addFragment(nightlifeFragment);
pageAdapter.addFragment(serviceFragment);
pageAdapter.addFragment(conceirgeFragment);
viewPager = (ViewPager) super.findViewById(R.id.talk_list_pager);
viewPager.setAdapter(this.pageAdapter);
viewPager.setOffscreenPageLimit(2);
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(this);
}
這裏的TalkListClass:
public class TalkListFragment extends ListFragment implements OnClickListener, OnItemClickListener
{
private TalkListAdapter adapter = null;
private ListView listView = null;
.
.
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
TalkFragmentListActivity activity = (TalkFragmentListActivity) getActivity();
adapter = new TalkListAdapter(activity, R.layout.talks_fragment_item, getTalkList());
listView = (ListView) activity.findViewById(android.R.id.list);
// listView = (ListView) activity.findViewById(R.id.talk_items_listview);
setListAdapter(adapter);
listView.setOnItemClickListener(this);
listView.setDescendantFocusability(ListView.FOCUS_BLOCK_DESCENDANTS);
.............
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if (listView != null)
{
TalkListAdapter adptr = (TalkListAdapter) parent.getAdapter();
Talk talk = (Talk) adptr.getItem(position);
Intent i = new Intent(view.getContext(), TalkDetailActivity.class);
i.putExtra("talk", talk);
this.startActivity(i);
}
}
現在程序表現良好的第一頁上,但是當頁面刷卡然後ItemOnClick永遠不會奏效。 ItemClickListener有很多問題,但我找不到解決這個問題的方法。
謝謝。
而不是在'Activity'中搜索'ListView'嘗試這一行'listview = getListView();'看看它是怎麼回事。 – Luksprog
哇! Luksprog非常感謝。有效。有什麼不同? –