2013-10-04 31 views
0

我有我將輸入的字符串連接問題。不顯示字符串連接

這是類:

package com.isma.multisitesearch.Siti; 

import com.isma.multisitesearch.R; 
import com.isma.multisitesearch.Webviews.GoogleWebView; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 

public class Google extends Activity implements OnClickListener { 
    private String TAG_ACT = "Caricamento ricerca"; 
    public EditText googletext; 
    private Button googlebutton; 
    private String googleurl = "https://www.google.it/search?q="; 
    public static String newgoogleurl; 
    public String space = " "; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.google); 
     googletext = (EditText) findViewById(R.id.googletext); 
     googlebutton = (Button) findViewById(R.id.googlebutton); 
     googlebutton.setOnClickListener(this); 
     newgoogleurl = googleurl + googletext.getText().toString(); 
     newgoogleurl.replaceAll(space, "%20"); 
     System.out.println(newgoogleurl); 
    } 

    @Override 
    public void onClick(View v) { 
     Log.v(TAG_ACT, "in corso"); 
     Intent intent = new Intent(Google.this, GoogleWebView.class); 
     startActivity(intent); 
    } 
} 

這是WebView到我想要得到的串聯:

package com.isma.multisitesearch.Webviews; 

import com.isma.multisitesearch.R; 
import com.isma.multisitesearch.Siti.Google; 

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

public class GoogleWebView extends Activity { 
    private WebView googlewebview; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.googlewebview); 
     googlewebview = (WebView) findViewById(R.id.googlewebview); 
     googlewebview.getSettings().setJavaScriptEnabled(true); 
     googlewebview.getSettings().setLoadsImagesAutomatically(true); 
     googlewebview.setWebViewClient(new WebViewClient()); 
     googlewebview.loadUrl(Google.newgoogleurl); 
    } 
} 

的應用程序工作正常,但當我去寫的搜索文本在EditText,谷歌,但我得到的主頁,你可以輸入搜索,而不是已經輸入搜索文本的網址。

我希望你知道,幫助我,在此之後,我能夠運行該應用程序。

回答

0

試試這個:

@Override 
public void onClick(View v) { 
    newgoogleurl = googleurl + googletext.getText().toString(); 
    newgoogleurl = newgoogleurl.replaceAll(space, "%20"); 
    Log.v(TAG_ACT, "in corso"); 
    Intent intent = new Intent(Google.this, GoogleWebView.class); 
    startActivity(intent); 
} 
+0

你是最好的,它工作尋找我想要什麼。非常感謝你,太糟糕了我無法爲你的聲望+1,因爲我的回答少於15,但你應該得到20:D –

+0

你是如何做到的?我是新來的 –

0

試試下面的代碼:

String url; 
url = googleurl+googletext.getText().toString(); 

if(url.contains(" ")){ 
    newgoogleurl=url.replaceAll(" ","%20"); 
}else{ 
    newgoogleurl=url; 
} 

這也包含驗證部分。

0

字符串是不可變的。這意味着您無法修改String實例,並且每次需要修改時都需要創建一個新實例。

在你的情況下,replaceAll不會修改你調用它的字符串,而是返回一個新的字符串與您的修改應用。

這就是爲什麼你需要影響返回值到你的字符串的引用。

newgoogleurl = newgoogleurl.replaceAll(space, "%20"); 

此外,你應該閱讀文檔replaceAll,因爲我不認爲它你想要做什麼。您可能想要使用replace