如何在非Fragment类中使用FragmentManager

时间:2014-12-15 11:59:23

标签: java android android-fragments

我已经创建了一个扩展BaseAdapter的CustomAdapter类(因此我无法将该类扩展为Fragment)。

CustomAdapter课程中,我使用项目创建自定义ListView。点击Uppon按钮我想去另一个片段。

CustomAdapter类正在MyLocationFragment.java中初始化。在这个Fragment中,我提供用户从ListView中选择一个Item,当用户单击Button(它位于TextView / Item旁边)时,我想转到HomeScreenFragment并使用TextView中存储的值执行某些操作。属于(同一职位)。

MyLocationFragment(在这种情况下重要的部分,否则太大):

if(adminMode) {
            ArrayList<String> data = new ArrayList<>(Arrays.asList(locationsArray));
            CustomAdapter adapter = new CustomAdapter(data, getActivity());

            // Assign adapter to ListView
            listView.setAdapter(adapter);

        }

CustomAdapter.java(部分地,听众进来的地方):

holder.localData.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        fMyLocation = new MyLocationFragment();
        // Store selected values into Strings and pass them to setter method
        String selectedLocation = (String) holder.items.getText().toString();
        String [] locationsArrayValues = v.getResources().getStringArray(R.array.locations_array_value);
        String selectedLocationUrl = locationsArrayValues[position];
        fMyLocation.setInputLocation(selectedLocation);
        fMyLocation.setInputLocationUrl(selectedLocationUrl);

        FragmentActivity myContext;

        // On Item Click, go to the HomeScreen
        Fragment fragment = new HomeScreenFragment();
        FragmentManager fManager = myContext.getSupportFragmentManager();
        FragmentTransaction fTransaction = fManager.beginTransaction();
        fTransaction.replace(R.id.fragment_holder, fragment);
        fTransaction.commit();






    }
});

以上代码会导致Cannot Resolve getFragmentManager();

我知道如何从非Fragment类进入HomeScreenFragment

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你应该做的是在实现BaseAdapter的类中为Context创建一个字段并使用它来代替你所做的。该字段的初始化将通过构造函数完成。