从AppCompatActivity调用MainActivityFragment

时间:2015-11-12 02:57:29

标签: android-fragments

如何从Android中的AppCompatActivity调用MainActivityFragment? (我是Android新手。)

代码

主要活动

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Create new fragment and transaction

        }
}

片段

public class MainActivityFragment extends Fragment {

    ArrayAdapter mforecastadapter;
    ListView list_view;

    public MainActivityFragment() {
    }

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

      String Items[] = {"Sandeep", "Santhosh", "Sangeetha", "Basil", "bibhas", "sumanth", "praveen"};
      List<String> weekforecast=new ArrayList<>(Arrays.asList(Items));

      mforecastadapter=new ArrayAdapter<String>(getActivity(),R.layout.fragment_main,R.id.list_item_forecast_textview,Items);
      list_view = (ListView) rootview.findViewById(R.id.listView);
      list_view.setAdapter(mforecastadapter);


      return rootview;

    }

}

1 个答案:

答案 0 :(得分:1)

不要真的知道你的意思&#34; call&#34;,但如果你想在Activity中实例化一个片段,请在你的Activity中写下:

    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    YourFragment frag = new YourFragment ();
    ft.replace(R.id.container_for_fragment, frag);
    ft.commit();

注意R.id.container_for_fragment是包含片段实例的xml属性。它可以是<fragment><FrameLayout>

这是最基本的方法。你可以在SO上找到更多的例子,如何使用片段BackStack等。

您还可以在FragmentTransaction中使用add()而不是replace(),具体取决于您的需要。

我希望它可以帮到你。