在Activity类中我有这个代码:
key
现在我在Fragment工作。我有两个错误。
此行中的一个(方法未定义):
class MyInfoWindowAdapter implements InfoWindowAdapter{
private View view;
public MyInfoWindowAdapter(){
view = getLayoutInflater().inflate(R.layout.custom_info_globo_marker,null);
}
//implemets metod of MyInfoWidowAdapter
@Override
public View getInfoContents(Marker marker) {
TextView tvTitle = ((TextView)view.findViewById(R.id.title));
tvTitle.setText(marker.getTitle());
return view;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
@Override
public boolean onMarkerClick(Marker marker) {
// TODO Auto-generated method stub
//ActionBar Contextual
mActionMode = InstalacionesEncontradasMostradasEnMapaActivity.this.startActionMode(new ActionBarCallBack(marker));
mActionMode.setTitle(marker.getTitle());
return false;
}
并在此行中(方法启动操作模式未定义):
view = getLayoutInflater().inflate(R.layout.custom_info_globo_marker,null);
答案 0 :(得分:0)
简短的回答是:Activity != Fragment
。
要获得LayoutInflater
个实例,您需要Context
。各种选项(来自片段内):
getActivity().getLayoutInflater().inflate(...);
LayoutInflater.from(getActivity()).inflate(...);
((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(...);
startActionMode()
的类似问题。此方法仅适用于Activity
,因此您需要在一个方法上调用它:
getActivity().startActionMode(...)
或者,如果您正在使用支持库:
((AppCompatActivity) getActivity()).startSupportActionMode(...)
(尽管make the activity and fragment communicate可能会以更灵活的方式相互促进。)