Frage

Ich habe diese (Noob?) Frage, aber ich kann es jetzt für viele Stunden einfach nicht herausfinden.

Ich verwende ViewPagerindicator (basierend auf ViewPager). Ich muss 3 Seiten haben, von denen jeder eine Webansicht mit einer bestimmten URL enthält.

Wie kann ich das zum Laufen bringen? Alle meine Versuche enden mit einer Sitzplatte, wenn ich 3 Seiten mit einer und derselben URL geladen habe. Ich habe viele Ansätze ausprobiert - aber mein Verständnis des Code scheint einige Grundlagen zu fehlen.

Mein Code:

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 );}

und der Adapter:

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 ) {}

}

War es hilfreich?

Lösung

Du hast kein break Aussagen in Ihrem switch Aussage. Daher fielen Sie alle Ihre Fälle durch und erstellen Ihre Inhalte bis zu dreimal, bis Sie den Boden erreicht haben, und Sie zeigen schließlich die mit "http://www.google.pl". Hinzufügen break Like SO:

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;

Usw.

Andere Tipps

Sie vermissen Pausen in Ihrem Schalter. Sie kaskadieren in allen Fällen auf den letzten. Sie müssen nach jedem brechen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top