Java Mapview片段类型不匹配错误
我正试图用Java Mapview片段类型不匹配错误,java,android,Java,Android,我正试图用地图视图定义一个片段。 我的xml文件是: fragment_first.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"&
地图视图定义一个片段。
我的xml
文件是:
fragment_first.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--android:background="@android:color/holo_orange_dark" >-->
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout>
现在,我将此片段调用到我的MainActivity,如下所示:
public class MainActivity extends AppCompatActivity{
...
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch (pos) {
case 0:
return FirstFragment.onMapReady();
default:
return ThirdFragment.newInstance("ThirdFragment, Default");
}
}
@Override
public int getCount() {
return 5;
}
}
}
这给了我编译时错误:
错误:(105,41)错误:类FirstFragment中的onMapReady方法无法
适用于给定类型;必需:找到Google地图:无参数
原因:实际参数列表和正式参数列表长度不同
我这里出了什么问题?关于活动的论点,有一部分是显而易见的,我仍然需要弄清楚。但错误是什么:
无法从静态方法引用非静态方法OnMapReady(…)
上下文
请帮忙
无法从静态上下文引用非静态方法OnMapReady(…)
您需要使用FirstFragment的对象来调用它的onMapReady()方法,因为onMapReady()是非静态的。我已经尝试过:FirstFragment newMapFragment=new FirstFragment();newMapFragment.onMapReady(位置)
出现无法在onMapReady()@BaRud上解析的错误,您应该按照实现中的预期传递GoogleMap对象:True,但在这里我甚至在传递参数之前就得到了错误(我的意思是在android studio的代码检查器中)。你能告诉我怎么做吗?
public class MainActivity extends AppCompatActivity{
...
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch (pos) {
case 0:
return FirstFragment.onMapReady();
default:
return ThirdFragment.newInstance("ThirdFragment, Default");
}
}
@Override
public int getCount() {
return 5;
}
}
}