我已经创建了一个扩展BaseAdapter的CustomAdapter类(因此我无法将该类扩展到Fragment)。
在CustomAdapter
类中,我创建带有项目的自定义ListView
。单击Uppon按钮我想再去一个片段。
正在MyLocationFragment.java
中初始化CustomAdapter类。在此片段中,我为用户提供了从ListView中选择一个项目的功能,当用户单击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
吗?任何帮助将不胜感激。
最佳答案
您应该做的是在实现BaseAdapter
的类中为Context
创建一个字段,并使用该字段代替您所做的事情。该字段的初始化将通过构造函数完成。