آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارور در ViewPager

میلاد  11 سال پیش  11 سال پیش
0 0

سلام دوستان تو یه برنامه به مشکل خوردم که الان چند روزه تو حل کردنش گیر کردم اگه امکان داره کمک کنین

تو برنامه نیاز داریم که مپ رو نشون بدیم که این کارو کردم و مشکلی نداشت اینم کداش

 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

از این که طولانی شد شرمنده 

چیکار باید بکنم تا بتونم نقشه رو نشون بدم

مرسی

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .