2012-02-16 10 views
0

私はこれ(noob?)に関する質問をしていますが、今は何時間も分かりません。複数のwebviewのViewPagerIndicator(ビューページ)を使用しています

私は(ViewPagerに基づいて)ViewPagerIndicatorを使用しています。 3つのページが必要です。それぞれに特定のURLのウェブビューが含まれています。

これをどのようにして実行できますか?すべての私の試みは、私が3つのページと1つの同じURLがロードされているときに、終わりで終わります。私は多くのアプローチを試みました - しかし、コードの私の理解は、いくつかの基本が欠けているようです。

私のコード:

public class WebPagerProfileActivity extends Activity { 

private ViewPager awesomePager; 
private static int NUM_AWESOME_VIEWS = 3; 
private Context context; 
private ViewPagerAdapter awesomeAdapter; 
LayoutInflater inflater ; 



/** Called when the activity is first created. */ 

@Override 

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.webpagerprofile); 
context = this; 

inflater = (LayoutInflater) 
     context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

awesomeAdapter = new ViewPagerAdapter(context); 
awesomePager = (ViewPager) findViewById(R.id.viewpager); 
TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicator); 

awesomePager.setAdapter(awesomeAdapter); 
indicator.setViewPager(awesomePager);} 

とアダプタ:

public class ViewPagerAdapter extends PagerAdapter implements TitleProvider 

{ private static String[] titles = new String[] 
{ 
    "Profile", 
    "Friends", 
    "Statistics" 
}; 
private final Context context; 

public ViewPagerAdapter(Context context) 
{ 
    this.context = context; 
} 

//@Override 
public String getTitle(int position) 
{ 
    return titles[position]; 
} 

@Override 
public int getCount() 
{ 
    return titles.length; 
} 

@Override 
public Object instantiateItem(View pager, int position) 
{ 
    View layout = null; 


    switch (position) { 
    case 0: { 
     LayoutInflater mInflater = (LayoutInflater) 
       context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout = mInflater.inflate(R.layout.webprofile, null); 

    WebView mainContent = (WebView)layout.findViewById(R.id.webview); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setBuiltInZoomControls(true); 
    mainContent.requestFocusFromTouch(); 
    mainContent.setWebViewClient(new WebViewClient()); 
    mainContent.setWebChromeClient(new WebChromeClient()); 
    mainContent.loadUrl("http://www.wp.pl"); 
    } 

    case 1: {  LayoutInflater mInflater = (LayoutInflater) 
      context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout = mInflater.inflate(R.layout.webfriends, null); 

    WebView mainContent = (WebView)layout.findViewById(R.id.webviewfriends); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setBuiltInZoomControls(true); 
    mainContent.requestFocusFromTouch(); 
    mainContent.setWebViewClient(new WebViewClient()); 
    mainContent.setWebChromeClient(new WebChromeClient()); 
    mainContent.loadUrl("http://www.onet.pl"); 
    } 

    case 2: {  LayoutInflater mInflater = (LayoutInflater) 
      context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout = mInflater.inflate(R.layout.webstatistics, null); 

    WebView mainContent = (WebView)layout.findViewById(R.id.webviewstatistics); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setBuiltInZoomControls(true); 
    mainContent.requestFocusFromTouch(); 
    mainContent.setWebViewClient(new WebViewClient()); 
    mainContent.setWebChromeClient(new WebChromeClient()); 
    mainContent.loadUrl("http://www.google.pl"); 
    } 

    } 

    ((ViewPager) pager).addView((View)layout,0); 

    return layout; 
} 

@Override 
public void destroyItem(View pager, int position, Object view) 
{ 
    //((ViewPager)pager).removeView((WebView)view); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) 
{ 
    return view.equals(object); 
} 

@Override 
public void finishUpdate(View view) {} 

@Override 
public void restoreState(Parcelable p, ClassLoader c) {} 

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

@Override 
public void startUpdate(View view) {} 

}

答えて

1

お客様のswitchステートメントにはbreakステートメントがありません。このように、あなたはすべての事件に巻き込まれ、コンテンツを3回まで作り直し、最後に「http://www.google.pl」で最後のコンテンツを表示します。そのようbreakを追加します。

switch (position) { 
case 0: { 
    LayoutInflater mInflater = (LayoutInflater) 
      context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    layout = mInflater.inflate(R.layout.webprofile, null); 

    WebView mainContent = (WebView)layout.findViewById(R.id.webview); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setJavaScriptEnabled(true); 
    mainContent.getSettings().setBuiltInZoomControls(true); 
    mainContent.requestFocusFromTouch(); 
    mainContent.setWebViewClient(new WebViewClient()); 
    mainContent.setWebChromeClient(new WebChromeClient()); 
    mainContent.loadUrl("http://www.wp.pl"); 
} 
break; 

+0

ありがとう、ありがとう、ありがとう。私はそのような間違いを嫌い、私はそれのために時間を失った、ええ! –

+0

素敵です。私たちの答えの一つを受け入れることができますか? –

+0

確かに、私はちょうどそれがどのように動作するか分からなかった;) –

1

あなたのスイッチで休憩を逃しています。彼らはすべてのケースで最後のものまでカスケード接続しています。あなたはそれぞれを壊す必要があります。

+0

は、上記のように、ありがとうございました! –

関連する問題