2015-03-08 2 views
1

Моя основная деятельность имеет 2 кнопки. Один для переноса текста на Activity2 и другой для передачи url в Activity2.Отправить URL-адрес от одного вида деятельности другому

Фрагмент кода для основной деятельности, чтобы отправить URL выглядит следующим образом:

else if (v.getId()==R.id.SendUrl){ 
        String query = mEditText.getText().toString(); 
        String url ="www.google.com/#q="+query; 
        Intent intent = new Intent(this, Activity2.class); 
        intent.putExtra(EXTRA_MESSAGE,Uri.parse(url)); 
        startActivity(intent); 

       } 

Приемный класс активности имеет следующий код:

public class Activity2 extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity2); 
    // get intent from HomeActivity 

    Intent intent = getIntent(); 

    // get extra message 
    String message = intent.getStringExtra(HomeActivity.EXTRA_MESSAGE); 

    //render in textview 
    TextView textView = (TextView)findViewById(R.id.viewtext); 
    textView.setTextSize(40); 
    textView.setText(message); 

    WebView webView=(WebView)findViewById(R.id.webNavigator); 
    webView.loadUrl(intent.getStringExtra(HomeActivity.EXTRA_MESSAGE)); 
    //show it in content view 

} 

Желаемое запрос не загружается. Какие-либо предложения?

ответ

0

Вы должны также передать URL как строка как-

String query = mEditText.getText().toString(); 
        String url ="http://www.google.com/#q="+query; 
        Intent intent = new Intent(this, Activity2.class); 
        intent.putExtra(EXTRA_MESSAGE,url); 
        startActivity(intent); 

Не используйте Uri.parse(); Если вы хотите использовать Ури вы можете пойти побочный following-

String uri = Uri.parse("http://...") 
       .buildUpon() 
       .appendQueryParameter("key", "val") 
       .build().toString(); 

Вы можете посмотреть на this также.

Добавить WebView клиента к вашему WebView, как

webView.setWebViewClient(new MyWebViewClient()); 


And the MyWebViewClient class is an inner class as- 

    private class MyWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return super.shouldOverrideUrlLoading(view,url); 
     } 
    } 
+0

Я удалил Uri.Parse(), однако, я до сих пор не могу получить webactivity загрузить , – Shawn

0
intent.putExtra(EXTRA_MESSAGE, Uri.parse(url)); 

Вы пройти Uri здесь

webView.loadUrl(intent.getStringExtra(HomeActivity.EXTRA_MESSAGE)); 

И попытаться получить String здесь. Возвращенный String всегда будет null, потому что дополнительный не String.

Если передать URL-адрес, как это, вы просто должны изменить одну строку и код должен работать:

intent.putExtra(EXTRA_MESSAGE, url); 
+0

Я удалил Uri.parse, однако активность в сети все еще не загружается. – Shawn

+0

Попробуйте добавить 'http: //' к URL-адресу в «HomeActivity» дополнительно к удалению 'Uri.parse' – ByteHamster