2017-04-24 74 views
0

嗨,我是新来的,希望找到帮助... 我发现一条消息“警告第一个参数发现类型MapActivity需要android.support.v4 .app.Fragment”我想MapActivity为碎片,因为我想添加地图中查看传呼机。我使用的查看传呼机也查看传呼机适配器和查看传呼机适配器我使用的片段×2名阵列列表和TabTitles警告第一个参数发现类型MapActivity需要android.support.v4.app.Fragment

这里是ViewPagerAdapter

public class ViewPagerAdapter extends FragmentPagerAdapter { 

ArrayList<Fragment> fragments = new ArrayList<>(); 
ArrayList<String> tabTitles = new ArrayList<>(); 

public void addFragments(Fragment fragments, String titles) 
{ 
    this.fragments.add(fragments); 
    this.tabTitles.add(titles); 
} 

public ViewPagerAdapter(FragmentManager fm) 
{ 
    super(fm); 
} 

@Override 
public Fragment getItem(int position) { 
    return fragments.get(position); 
} 

@Override 
public int getCount() { 
    return tabTitles.size(); 
} 


@Override 
public CharSequence getPageTitle(int position) { 
    return tabTitles.get(position); 
} 
} 

的代码,这里是MainActivity.java的代码

public class MainActivity extends AppCompatActivity { 

Toolbar toolbar; 
TabLayout tabLayout; 
ViewPager viewPager; 
ViewPagerAdapter viewPagerAdapter; 
/** 
* ATTENTION: This was auto-generated to implement the App Indexing API. 
* See https://g.co/AppIndexing/AndroidStudio for more information. 
*/ 
private GoogleApiClient client; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    toolbar = (Toolbar) findViewById(R.id.toolBar); 
    setSupportActionBar(toolbar); 
    tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
    viewPager = (ViewPager) findViewById(R.id.viewPager); 
    viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    viewPagerAdapter.addFragments(new HomeFragment(), "Home"); 
    viewPagerAdapter.addFragments(new SearchFragment(), "Search"); 
    // viewPagerAdapter.addFragments(new MapFragment(),"Map"); 
    viewPagerAdapter.addFragments(new MapsActivity(), "Map"); 
    viewPager.setAdapter(viewPagerAdapter); 
    tabLayout.setupWithViewPager(viewPager); 

    client = new   GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
} 

/** 
* ATTENTION: This was auto-generated to implement the App Indexing API. 
* See https://g.co/AppIndexing/AndroidStudio for more information. 
*/ 
public Action getIndexApiAction() { 
    Thing object = new Thing.Builder() 
    .setName("Main Page") // TODO: Define a title for the content shown. 
      // TODO: Make sure this auto-generated URL is correct. 
      .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")) 
      .build(); 
    return new Action.Builder(Action.TYPE_VIEW) 
      .setObject(object) 
      .setActionStatus(Action.STATUS_TYPE_COMPLETED) 
      .build(); 
} 

@Override 
public void onStart() { 
    super.onStart(); 


    client.connect(); 
    AppIndex.AppIndexApi.start(client, getIndexApiAction()); 
} 

@Override 
public void onStop() { 
    super.onStop(); 


    AppIndex.AppIndexApi.end(client, getIndexApiAction()); 
    client.disconnect(); 
} 
} 
在activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 

tools:context="com.example.lilla.tabdemo.MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <include 

     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     layout="@layout/toolbar_layout" 

     /> 
    <android.support.design.widget.TabLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tabLayout" 
     app:tabMode="fixed" 
     app:tabGravity="fill" 
     > 

    </android.support.design.widget.TabLayout> 

</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/viewPager" 
    > 

</android.support.v4.view.ViewPager> 

</RelativeLayout> 

恳求

SE帮我谢谢....

MapsActivity.java

package com.example.lilla.tabdemo; 

import android.support.v4.app.FragmentActivity; 
import android.os.Bundle; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends FragmentActivity implements 
OnMapReadyCallback { 

private GoogleMap mMap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
SupportMapFragment mapFragment = (SupportMapFragment) 
getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 


@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
} 
} 
+0

发表您的'MapsActivity'代码... – rafsanahmad007

+0

采取的链接复制答案看看'MapFragment'类。这是你应该使用的,而不是你的'MapsActivity'类的东西。 –

回答

0

你MapsActivity类必须扩展片段类和片段类必须从 android.support.v4.app.Fragment包进口。

试试这个类:

public class MapsActivity extends Fragment implements 
OnMapReadyCallback { 

private GoogleMap mMap; 
private MapView mMapView; 

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.activity_maps, container, false); 
     getActivity().setTitle("Map"); 
     mMapView = (MapView) v.findViewById(R.id.map); 
     mMapView.onCreate(savedInstanceState); 
     mMapView.getMapAsync(this); //this is important 
     return v; 
    } 
    @Override 
    public void onResume() { 
     super.onResume(); 
     mMapView.onResume(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mMapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mMapView.onDestroy(); 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     mMapView.onSaveInstanceState(outState); 
    } 

    @Override 
    public void onLowMemory() { 
     super.onLowMemory(); 
     mMapView.onLowMemory(); 
    } 

@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
} 
} 
+0

MapsActivity类扩展FragmentActivity如果我改变它在延伸片段,然后我有更多的错误,如不能解析方法设置内容查看,也不能解析方法getSupportFragmentManager; –

+0

你需要共享MapsActivty代码,这样我可以建议修改 – theSereneRebel

+0

我编辑后,请检查 –

相关问题