【问题标题】:Getting an error: onCreate(Bundle) in class clashes with onCreate(Bundle) in android.support.v4.app.Fragment出现错误:类中的 onCreate(Bundle) 与 android.support.v4.app.Fragment 中的 onCreate(Bundle) 冲突
【发布时间】:2017-04-04 16:50:45
【问题描述】:

我创建了一个扩展Fragment 的类Navigation。当我使用onCreate() 方法时,它给我一个错误,说类的onCreate() 方法与android.support.v4.app.FragmentonCreate() 方法冲突。

package com.beacons.railwayaid.tablayoutapp;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.customlbs.library.IndoorsFactory;
import com.customlbs.surface.library.IndoorsSurfaceFactory;
import com.customlbs.surface.library.IndoorsSurfaceFragment;


public class Navigation extends Fragment {



@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    IndoorsFactory.Builder indoorsBuilder = new IndoorsFactory.Builder();
    IndoorsSurfaceFactory.Builder surfaceBuilder = new IndoorsSurfaceFactory.Builder();

    indoorsBuilder.setContext(getContext());

    indoorsBuilder.setApiKey("69af5e85-007a-4df5-8715-d1c2c22e206f");



    indoorsBuilder.setBuildingId((long) 979231679);

    surfaceBuilder.setIndoorsBuilder(indoorsBuilder);

    IndoorsSurfaceFragment indoorsFragment = surfaceBuilder.build();

    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.add(android.R.id.content, indoorsFragment, "indoors");
    transaction.commit();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.tab2_railway_navigation, container, false);

    return rootView;
   }
}

【问题讨论】:

  • 请添加错误日志

标签: android android-fragments fragment oncreate


【解决方案1】:

变化:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
}

到:

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
}

【讨论】:

  • onCreate 方法与公共访问一起使用,只是我搞砸了。谢谢ditn
【解决方案2】:

尝试将您的代码移动到 onActivityCreated 方法,如下所示:

public class Navigation extends Fragment {



@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.tab2_railway_navigation, container, false);

    return rootView;
   }

 @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
         IndoorsFactory.Builder indoorsBuilder = new IndoorsFactory.Builder();
    IndoorsSurfaceFactory.Builder surfaceBuilder = new IndoorsSurfaceFactory.Builder();

    indoorsBuilder.setContext(getContext());

    indoorsBuilder.setApiKey("69af5e85-007a-4df5-8715-d1c2c22e206f");



    indoorsBuilder.setBuildingId((long) 979231679);

    surfaceBuilder.setIndoorsBuilder(indoorsBuilder);

    IndoorsSurfaceFragment indoorsFragment = surfaceBuilder.build();

    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.add(android.R.id.content, indoorsFragment, "indoors");
    transaction.commit();

   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多