Как передать динамический URL-адрес каждой веб-активности в мульти-вкладке с 1 веб-просмотром на каждой вкладке - приложение для Android

1

Мое приложение - новостное приложение. состоящий из 5 вкладок или более (это будет настройка, основанная на каждом требовании пользователя).

Когда приложение "Пуск" я создаю 5 вкладок динамически и создаю веб-просмотр в качестве намерения для каждой вкладки, мне просто нужно передать URL-адрес для каждой вкладки в намерение здесь моего кода.

Это основной вид деятельности

package news.mobile;

import android.app.Activity;
import android.os.Bundle;
import android.app.TabActivity;
import android.widget.TabWidget;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.content.Intent;

public class NewsMobile extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TabHost tabHost = getTabHost();
        // Here I create the tabs dynamically.
        for(int i=0;i<5;i++){
        tabHost.addTab(
                tabHost.newTabSpec("tab"+i)
                .setIndicator("Politics")
                    // I need to pass an argument to the WebviewActivity to open a
                    // specific URL assume it is "http://mysite.com/?category="+i
                .setContent( new Intent(this, WebviewActivity.class)));
        }
        tabHost.setCurrentTab(0);
    }
}

Это моя активность в Webview Creator

package news.mobile;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class WebviewActivity extends Activity {
    WebView browse;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        browse=new WebView(this);
        setContentView(browse);
                // I need the following line to read an argument and add it to the url
        browse.loadUrl("http://mysite.com/?category=");
    }
} 
Теги:
android-webview
android-intent
android-tabactivity

2 ответа

1
Лучший ответ

Вы можете использовать Bundle следующим образом:

Bundle bundle = new Bundle();
String url = "http://www.google.com";
bundle.putString("urlString", url);
Intent intent = new Intent(ThisActivity.this, NewActivity.class);
intent.putExtras(bundle);
startActivity(intent);
  • 0
    Хорошо, теперь я установил это в действии NewsMobile. Теперь, когда я пытался прочитать это в WebviewActivity, он выдает ошибки browse.loadUrl (saveInstanceState.getString ("url")); Не могли бы вы применить свое решение на код выше? Я начинающий JAVA-разработчик, я изначально PHP / Python Developer
  • 0
    @Shehabix В соответствии с политикой StackOverflow, это отдельный вопрос, вы задаете другой вопрос, оставляете здесь комментарий для меня, я проверю вопрос и оставлю ответ.
Показать ещё 1 комментарий
1

Если это кому-то поможет, вот дополнительная информация, которую @Shehabix просил:

Поэтому начните работу с веб-просмотром, как показано в принятом ответе

Bundle bundle = new Bundle();
String url = "http://www.google.com";
bundle.putString("urlString", url);
Intent intent = new Intent(ThisActivity.this, NewActivity.class);
intent.putExtras(bundle);
startActivity(intent);

Вот как перехватить эту информацию в активности веб-просмотра

public class MyWebView extends Activity {

    private WebView webView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.asset_web_view);
        //get url stored in intent
        String url = super.getIntent().getExtras().getString("urlString");
        loadUrlInWebView(url);
    }

    private void loadUrlInWebView(String url){
        webView = (WebView) findViewById(R.id.mywebview);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl(url);
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню