gpt4 book ai didi

java - 在 Activity 中重用 fragment 类

转载 作者:行者123 更新时间:2023-11-29 20:49:09 32 4
gpt4 key购买 nike

由于我不熟悉 Fragments,所以我对 stackoverflow 上提供的解决方案感到很困惑。我尝试了许多不同的技术来完成这项任务:我有一个名为 MapFragment 的类,它扩展了 Fragment。它在我的 viewpager 中运行良好。但是,我想从不同的 Activity 中重用此类。这是我的 Fragment 中一个名为 MapFragment 的示例:

public class MapFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_mapview, container, false);
mapView = (MapView) rootView.findViewById(R.id.fragment_mapView);
mapView.onCreate(savedInstanceState);

this.setHasOptionsMenu(true);

activity.getActionBar().setDisplayHomeAsUpEnabled(true);

initGPS();
initViews();
initListeners();

Bundle extras = getArguments();

String url = "";
if(extras.containsKey("url"))
url = extras.getString("url");

new LoadMarkers().execute(url);

return rootView;
}
}

假设我有另一个 Activity ,我想用来重用上面的这个 mapfragment:

public class MapActivity extends GeneralActivity {

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

// I want to be able to display the MapFragment inside this activity
// What Should I Do Here????
enter code here
}
}

然后我可以从程序中的任何位置调用 MapActivity 上的 Intent ,知道它会在其中显示 MapFragment。这有可能实现吗?

最佳答案

为您的 Activity 类 MapActivity 创建一个布局。说 activity_map.xml

粗略的 fragment

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frag_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

在你的 Activity 课上,

public class MapActivity extends GeneralActivity {

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

// I want to be able to display the MapFragment inside this activity
// What Should I Do Here????
// enter code here
setContentView(R.layout.activity_map);

Fragment fragment = new MapFragment();
FragmentManager manager = getSupportFragmentManager();

manager.beginTransaction()
.replace(R.id.frag_container, fragment)
.commit();

}
}

另外,在您的 fragment 代码中,您期待一个包。确保检查此 bundle 是否不为空。由于使用上述代码,我们没有传递任何数据 (setArguments)。

希望这对您有所帮助!

关于java - 在 Activity 中重用 fragment 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636980/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com