Android: Greifen Sie mit ViewPager auf Mapview Inside Fragment zu
Ich verwende View Pager, um drei Ansichten anzuzeigen.
"Filter","Streets","Around"
Jede Ansicht wird durch Fragment definiert.
WAS ICH MÖCHTE : Ich möchte Mapview in meinem FilterFragment verwenden.
WAS HABE ICH GETAN :
Ich möchte MapView Inside Filter Fragment verwenden, konnte aber nicht erfolgreich ausgeführt werden. und Protokollierungsfehler abrufen:
android.view.InflateException: Binary XML file line #33: Error inflating class com.google.android.maps.MapView
Ich habe auch über Net und Stackoverflow nach diesem Problem gesucht und das gefundenVERKNÜPFUNG undVERKNÜPFUNG Dieser Link konnte nicht gefunden werden. Bezieht sich auf mein Problem, da ich Fragment mit ViewPager verwende.
Ich habe meinen Code wie folgt angegeben.
Hier ist mein Code für MainViewPager.java:
package com.example.viewpageractivitydemo;
import com.example.viewpageractivitydemo.viewpager.TitlePageIndicator;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
public class MainViewPager extends FragmentActivity {
TestFragmentAdapter adapter;
ViewPager pager;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
Log.i("MainViewPager","Inside Oncreate");
setContentView(R.layout.mainviewpager);
pager = (ViewPager) findViewById(R.id.pager);
adapter = new TestTitleFragmentAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(pager);
pager.setCurrentItem(1);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// pager.setCurrentItem(1);
}
}
Hier ist Code für TestFragmentAdapter.java
package com.example.viewpageractivitydemo;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;
public class TestFragmentAdapter extends FragmentPagerAdapter {
protected static final String[] CONTENT = new String[] { "Filter",
"Streets", "Around" };
public String TAG = "TestFragmentAdapter";
private int mCount = CONTENT.length;
public TestFragmentAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int position) {
// TODO Auto-generated method stub
Log.i(TAG, "Inside getItemMethod with position " + position);
if (position == 0) {
Log.i("TestFragmentAdapter","Inside if Condition");
return FilterFragment.newInstance(position);
} else if (position == 1) {
return StreetsFragment.newInstance(position);
} else if (position == 2) {
return AroundFragment.newInstance(position);
} else {
return null;
}
// return MainFragment.newInstance(CONTENT[position % CONTENT.length]);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mCount;
}
public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
}
Hier ist mein Code für FilterFragment.java:
package com.example.viewpageractivitydemo;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FilterFragment extends Fragment {
/*
* @Override protected Class<? extends Activity> getActivityClass() { //
* TODO Auto-generated method stub return MyFilterActivity.class; }
*/
public static Fragment newInstance(int position) {
Log.i("FilterFragment","Inside New Instasnce");
FilterFragment filterFragment = new FilterFragment();
return filterFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
Log.i("FilterFragment","Inside OcCreateView");
View view = inflater.inflate(R.layout.filter, null);
return view;
}
}
Hier ist mein Code für filter.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#C6CDD4"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#93A4BA"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_margin="5dp"
android:gravity="center"
android:text="Where Am I"
android:textColor="#ffffff"
android:textSize="18dp"
android:textStyle="bold" >
</TextView>
</LinearLayout>
<com.google.android.maps.MapView
android:id="@+id/whereami_mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0-PaH6rk7RKrZSMd_lqdrZi6FazYyIlX5r6YFyA"
android:clickable="true" />
<!--
<com.google.android.maps.MapView
android:id="@+id/whereami_mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0-PaH6rk7RKrZSMd_lqdrZi6FazYyIlX5r6YFyA" />
-->
</LinearLayout>
</LinearLayout>
Bitte kann mir jemand eine Antwort vorschlagen, um mein Problem zu lösen. Ich habe viele Stunden damit verbracht. Immer noch keine Ahnung von meiner Frage. Danke im Voraus.