2013-11-15 4 views
0

나는 프로젝트를 짓는다. 하지만 문제가 있습니다. 내 프로젝트는 페이지 A, 페이지 B안드로이드 ViewPager 안에 Layoutinflator

사진에서

http://s20.postimg.org/5pupjbuyl/untitled.png

페이지 A가 페이지 B는 FrameLayout이있는 LinearLayout과 FrameLayout이 (ID = 내용)입니다했다 FrameLayout이의 FrameLayout이 (ID = 레이아웃)입니다 (ID = 호출기를 가지고), FrameLayout이에 Viewpager에게 있습니다

내가 페이지 B에 FrameLayout이 (ID = 호출기)를 포함하는 페이지 (A)에 FrameLayout이 (ID = 내용) 걸릴 것

(주의 사항 : 내 코드를 최소화하려고하기 때문에 많은 선)

의 PageIndicatorActivity 된 .java

public class PageIndicatorActivity extends Activity { 
... 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    .. 
    .. 
    ViewGroup Content = (ViewGroup)findViewById(R.id.layout); 
    ViewBookAdapter pager = new ViewBookAdapter(this); 
      Content.addView(pager.getView()); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main,menu); 
    return true; 
}} 

pager.java

public class Pager extends PagerAdapter { 

Activity activity; 
private static String content[] = {"file:///android_asset/html/page1.html","file:///android_asset/html/page2.html"}; 

public Pager(Activity act) { 
    activity = act; 
} 


public int getCount() { 
    return content.length; 
} 

public Object instantiateItem(View collection, int position) { 
    WebView view = new WebView(activity); 
    view.loadUrl(content[position]); 
    view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)); 
    ((ViewPager) collection).addView(view, 0); 



    return view; 
} 

@Override 
public void destroyItem(View arg0, int arg1, Object arg2) { 
    ((ViewPager) arg0).removeView((View) arg2); 
} 

@Override 
public boolean isViewFromObject(View arg0, Object arg1) { 
    return arg0 == ((View) arg1); 
} 

@Override 
public Parcelable saveState() { 
    return null; 
}} 

및 ViewBookAdapter.java

class ViewBookAdapter { 
Activity activity; 
private LayoutInflater minflate; 
private ViewPager myPager; 

public ViewBookAdapter(Activity act){ 
    activity = act; 
    myPager = (ViewPager)act.findViewById(R.id.viewPager); 
    Pager p = new Pager(act); 
    myPager.setAdapter(p); // <--- THIS PROBLEM --- 


} 

public View getView(){ 
    LayoutInflater minflate = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = minflate.inflate(R.layout.pager, null); 
    return v; 
}} 

I가 myPager.setAdapter (p)에 probleam있다;

안드로이드 신고 버그

어떻게 해결하는 NullPointerException이

입니까?

는 답변 ^^

PS 주셔서 감사합니다. 미안 영어.

답변

0

ActivityViewPager이 없기 때문에 이러한 현상이 발생합니다. 그 다른 레이아웃. setAdapter을 입력해야합니다. getView()

+0

오. 좋다 .. 고마워요 ^^ –

+0

당신은 오신 것을 환영합니다. 도움이 되었다면 대답을 수락하십시오. – Apoorv

+0

음 ... 처음으로 getView()에서 myPager.setAdapter를 이동할 때 : 나는 아무 문제가 없다고 생각합니다. 하지만 코드를 추가합니다. Content.addView (pager.getView()); PageIndicatorActivity .java에 있습니다. 다시 문제가 있습니다 –

0

현재 PageIndicatorActivity 레이아웃에는 ViewPager이 없습니다. 이런 식으로 계속해야하는 경우 Activity (페이지 B)으로 이동하고 구현을 따라야합니다.