Я запускаю мероприятие, в котором размещается фрагмент со списком элементов.
При нажатии на элемент.Макет проверен на трехпанельный режим или нет.
public void onFeedSelected(Feed feed) {
if (isThreePane) {
addItemsFragment(feed);
}
else {
Intent i=new Intent(this, ItemsActivity.class);
i.putExtra(ItemsActivity.EXTRA_FEED_KEY, feed.getKey());
startActivity(i);
}
}
Как вы можете видеть, если это не трехпанельный режим, он запускает действие. Это нормально работает на обычных телефонах.
Но еслиэто экран планшета, действие не запускается во фрагменте.
Вот мой метод AddFeed ().
public void addItemsFragment(Feed feed) {
FragmentManager fragMgr=getSupportFragmentManager();
ItemsFragment items=(ItemsFragment)fragMgr.findFragmentById(R.id.second_pane);
FragmentTransaction xaction=fragMgr.beginTransaction();
if (items==null) {
items=new ItemsFragment(true);
items.setOnItemListener(this);
xaction
.add(R.id.second_pane, items)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
}
else {
ContentFragment content=
(ContentFragment)fragMgr.findFragmentById(R.id.third_pane);
if (content!=null) {
xaction.remove(content).commit();
fragMgr.popBackStack();
}
}
Я не понимаю, почему он не запускается .. Когда я нажимаю напункт он ничего не делает на планшетном устройстве.
РЕДАКТИРОВАТЬ:
private boolean isThreePane=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FeedsFragment feeds
=(FeedsFragment)getSupportFragmentManager()
.findFragmentById(R.id.feeds);
feeds.setOnFeedListener(this);
isThreePane=(null!=findViewById(R.id.second_pane));
if (isThreePane) {
feeds.enablePersistentSelection();
}
}