2

我以这种方式进行主要活动:

public class EntryPoint extends SherlockFragmentActivity implements ActionBar.OnNavigationListener

还有两个片段,当您在导航栏中选择一个项目时,我只想切换,所以我有这种方法在 Nexus 7(目标版本 4.2.2)中有效,但在 Xperia Neo V(目标版本 4.0.2)中无效。 3)。第一个片段看起来没有问题,但是当我更改为另一个片段时,我对其进行了调试,它没有执行 onCreate 或 onCreateView 方法。这就是为什么它在尝试访问片段中的列表时通过异常。奇怪的是,在 Nexus 7 中运行完美,但在索尼爱立信没有。

@Override
public boolean onNavigationItemSelected(int position, long id) {
    // When the given dropdown item is selected, show its contents in the
    // container view.

    int section = position + 1;
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    if (section == 1) {
        ft.add(R.id.container,new FavCityListFragment());

    } else if (section == 2) {
        ft.remove(getFav());
        ft.add(R.id.container,new CityListFragment());
        ft.addToBackStack(null);

    }
    ft.commit();
    return true;
}

这两个片段是这样的:

public class CityListFragment extends SherlockListFragment implements
    com.actionbarsherlock.widget.SearchView.OnQueryTextListener {

和容器:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".EntryPoint"
tools:ignore="MergeRootFrame" >
</FrameLayout>
4

1 回答 1

1

与Ismael Reyes交谈,他找到了答案:

Android中是否存在此问题:https ://code.google.com/p/android/issues/detail?id=18594

并回答:

“[...] 编辑 src/com/example/android/supportv4/app/LoaderCustomSupport.java 以删除对 OnQueryTextListener 和 onCreateOptionsMenu、onQueryTextChange 和 onQueryTextSubmit 函数的引用 [...]” Dianne Hackborn

于 2013-06-12T10:39:14.987 回答