BlackBerry - How to pass URL from one screen to another

I want to pass the value of a LocalURL to another Screen. I have tried this but all I get is blank Screen: BlackBerry - how to pass data like Intent.putExtra() in Android

Like in android:

(In Screen1)

        WebView webView;
        webView = (WebView) findViewById(R.id.webView);
        Bundle extras = getIntent().getExtras();
        String value = "file:///android_asset/errorpage.html";
        if (extras != null) {
            value = extras.getString("keyHTML");
        }

and (in Screen2)

        Intent i = new Intent(this, Screen1.class);
        i.putExtra("keyHTML", "file:///android_asset/page2.html");
        startActivity(i);

How do I implement something like this in Blackberry, I currently use:

BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();
            myBrowserFieldConfig.setProperty(
                    BrowserFieldConfig.NAVIGATION_MODE,
                    BrowserFieldConfig.NAVIGATION_MODE_POINTER);
            BrowserField browserField = new BrowserField(
                    myBrowserFieldConfig);
            sscreen = new MainScreen();
            sscreen.add(browserField);
            if (name.equals("Santa Claus")) {
                Ui.getUiEngine().pushScreen(sscreen);

                browserField.requestContent("local:///santa.html");

            } else if (name.equals("Christmas")) {
                Ui.getUiEngine().pushScreen(sscreen);

                browserField.requestContent("local:///christmas.html");

But I see it takes a while before it displays the HTML, I thought if I could pass data as it is in android, then it would open faster.

EDIT

in NewScreen

public NewScreen(String url) {
    BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();
    myBrowserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
            BrowserFieldConfig.NAVIGATION_MODE_POINTER);
    BrowserField browserField = new BrowserField(myBrowserFieldConfig);
    add(browserField);
    url = "local:///errorpage.html";
    browserField.requestContent(url);
}

in OldScreen

if (check.equals("1") || check.equals("001")) {
                    NewScreen newscreen = new NewScreen("local:///page1.html");
                    UiApplication.getUiApplication().pushScreen(newscreen);

The NewScreen is pushed but still shows the default value "url = "local:///errorpage.html";" I thought it ought to change to the new value set in OldScreen "local:///page1.html" when run. Please explain.

Upvotes: 0

Views: 129

Answers (1)

Rince Thomas
Rince Thomas

Reputation: 4158

try this -

new_screen = new new_screen(your_url);
UiApplication.getUiApplication().pushScreen(new_screen);

In your new_screen class -

public class new_screen extends MainScreen{
public new_screen(String url){
//here you will get the value of url  from the variable url.

  }
    }

Upvotes: 1

Related Questions