بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ارور در ViewPager
سلام دوستان تو یه برنامه به مشکل خوردم که الان چند روزه تو حل کردنش گیر کردم اگه امکان داره کمک کنین
تو برنامه نیاز داریم که مپ رو نشون بدیم که این کارو کردم و مشکلی نداشت اینم کداش
public class MapActivity extends FragmentActivity {
private GoogleMap map;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
networkLocation();
}
private void animateToLocation(double latitude, double longtitude) {
LatLng latlng = new LatLng(latitude, longtitude);
CameraPosition position1 = CameraPosition.builder()
.target(latlng)
.zoom(17)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(position1));
map.addMarker(new MarkerOptions()
.title("Test")
.position(latlng));
}
public void networkLocation() {
G.locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
animateToLocation(location.getLatitude(), location.getLongitude());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
});
}
}
کد main.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/AbsoluteLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</AbsoluteLayout>
کلاس G
public class G extends Application {
public static LocationManager locationManager;
public static LayoutInflater inflater;
@Override
public void onCreate() {
super.onCreate();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
}
}
کد AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="KavirGroup.Advertising"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.arshad.map.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-sdk android:minSdkVersion="7" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name=".G"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MapActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="6" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAZ0DNJnsPcljt9lpd-DgEsfy8mvhmtIe8" />
</application>
</manifest>
تا اینجا مشکلی نبود حالا نوبت معرفی ViewPager هست
public class ViewStartup extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.starter);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
ImagePagerAdaptere adapter = new ImagePagerAdaptere();
pager.setAdapter(adapter);
}
}
کد starter.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/AbsoluteLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager>
</AbsoluteLayout>
کلاس ImagePagerAdaptere
public class ImagePagerAdaptere extends PagerAdapter {
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public Object instantiateItem(final ViewGroup container, int position) {
int i = -1;
if (position == 0) {
i = R.layout.page1;
}
if (position == 1) {
i = R.layout.page2;
}
View view = G.inflater.inflate(i, container, false);
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
کد sample.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/AbsoluteLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</AbsoluteLayout>
کد page1.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="page 1" />
</RelativeLayout>
کد page2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="page 2" />
</RelativeLayout>
خوب حالا اگه تو AndroidManifest جای MapActivity بزاریم ViewStartup و اجرا بگیریم ViewPager ما هم درست کار میکنه
ولی اگه بخواهیم جای page 2 نقشه رو نشون بدیم یعنی تو کلاس ImagePagerAdaptere جای خط i = R.layout.page2 بنویسیم
i = R.layout.main به ارور بر می خوریم که اینم ارور داخل Log
06-21 20:09:29.482: E/AndroidRuntime(19811): FATAL EXCEPTION: main
06-21 20:09:29.482: E/AndroidRuntime(19811): android.view.InflateException: Binary XML file line #7: Error inflating class fragment
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
06-21 20:09:29.482: E/AndroidRuntime(19811): at VanGoVa.KavirGroup.Advertising.Milad.ImagePagerAdaptere.instantiateItem(ImagePagerAdaptere.java:32)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:829)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.support.v4.view.ViewPager.populate(ViewPager.java:1044)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.support.v4.view.ViewPager.populate(ViewPager.java:911)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1432)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.View.measure(View.java:15630)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.ViewGroup.measureChild(ViewGroup.java:4897)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.ViewGroup.measureChildren(ViewGroup.java:4874)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.widget.AbsoluteLayout.onMeasure(AbsoluteLayout.java:63)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.View.measure(View.java:15630)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4926)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.View.measure(View.java:15630)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.widget.LinearLayout.measureVertical(LinearLayout.java:850)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
06-21 20:09:29.482: E/AndroidRuntime(19811): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
06-21 20:09:29.482: E/AndroidRuntime(19811): ... 41 more
از این که طولانی شد شرمنده
چیکار باید بکنم تا بتونم نقشه رو نشون بدم
مرسی
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .