보기 호출기를 사용하여 세 가지보기를 표시하고 있습니다.안드로이드 : ViewPager를 사용하여 조각 내부에 액세스
"Filter","Streets","Around"
각보기는 단편으로 정의됩니다.
내가 원하는 : 내 FilterFragment 내에서 Mapview를 사용하고 싶습니다.
은 내가 무엇을했는지 :
내가 필터 조각 내부지도보기를 사용하고 싶지만 성공적으로 실행 할 수 수 없습니다. 그리고 얻기 로그 케이트 오류 :
android.view.InflateException: Binary XML file line #33: Error inflating class com.google.android.maps.MapView
나는 또한이 문제에 대해 인터넷과 유래에 검색하고 LINK 및 LINK하지만 내 문제와 관련이 링크를 찾을 수 없습니다 내가 단편을 사용하고로 발견했다 ViewPager.
나는 아래 코드를 기재하였습니다.
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;
}
}
: 여기
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);
}
}
이 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();
}
}
}
FilterFragment.java에 대한 나의 코드입니다에 대한 코드입니다 : 여기
는 MainViewPager.java에 대한 나의 코드입니다 다음은 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>
제발 누구든지 내 문제를 해결하기 위해 대답 해줄 수 있습니까? 나는 이것에 많은 시간을 보냈다. 아직 내 질문에 대한 아이디어를 얻지 못했습니다. Thnks in Advance.
나는 귀하의 코드를 사용했지만 Dnt Knew가 Running App 중에 ClassDefNotFound 문제에 직면하고 있습니다. Dnt는 왜 알았습니다. 나는 Menifest 파일에 선언했다. –
그것은 내 문제를 매우 쉽게 해결합니다. 지원을위한 Thnx. 정말 많이 다시 한번 감사드립니다 !!!! –
뷰 페이지를 스 와이프하면 충돌이 발생합니다. 오류 : 지정된 자식에 이미 상위 항목이 있습니다. 먼저 부모의 removeview()를 호출해야합니다. –