java - 有什么方法可以根据用户输入编辑 URI?

标签 java android android-edittext uri

我有一个从 URI 接收信息的 HTTP GET。 URI 用于 Google 购物。

https://www.googleapis.com/shopping/search/v1/public/products?key=key&country=US&q=digital+camera&alt=atom

(遗漏了我的 key )。

有什么方法可以改变它

q=digital+camera

用户在 EditText 中输入的任何内容?

基本上,我希望 EditText 更改在 Google 购物上搜索的内容。

第一个屏幕,带有用于搜索查询的 EditText 的 ProductSearchEntry:

enter image description here

ProductSearchEntry 代码

public class ProductSearchEntry extends Activity{
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.productsearchentry);

    Button search = (Button) findViewById(R.id.searchButton);

    search.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent searchIntent = new Intent(getApplicationContext(), ProductSearch.class);
                startActivity(searchIntent);
        }
    });
    }
}

然后,我有第二个类,ProductSearch,没有图片,只有这段代码:

public class ProductSearch extends Activity{
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.productsearchresults);
     EditText searchQuery = (EditText) findViewById(R.id.searchQuery);

        ProductSearchMethod test = new ProductSearchMethod();
        String entry;
        TextView httpStuff = (TextView) findViewById(R.id.httpTextView);
        try {
            entry = test.getSearchData(searchQuery.getText().toString());
            httpStuff.setText(entry);
              } catch (Exception e) {
                        e.printStackTrace();
    }
}
}

它引用 ProductSearchMethod 类,该类由一个 TextView 组成,该 TextView 已更改为在 HTTP GET 中收到的代码:

enter image description here

代码:

public class ProductSearchMethod {

public String getSearchData(String query) throws Exception{
    BufferedReader in = null;
    String data = null;
    try{
        HttpClient client = new DefaultHttpClient();
        URI site = new URI("https://www.googleapis.com/shopping/search/v1/public/products?key=key&country=US&q="+query.replace(" ","+")+"&alt=atom");
     HttpGet request = new HttpGet();
    request.setURI(site);
    HttpResponse response = client.execute(request);
    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
    StringBuffer sb = new StringBuffer("");
    String l = "";
    String nl = System.getProperty("line.seperator");
    while((l = in.readLine()) !=null){
        sb.append(l + nl);
    }
    in.close();
    data = sb.toString();
    return data;
    }finally{
        if (in != null){
            try{
                in.close();
                return data;
            }catch (Exception e){
                e.printStackTrace();
                }
            }
        } 
    }
}

ProductSearchMethod 运行良好,但它不会将文本从“加载项”更改为网站代码。我之前让它工作,但后来我尝试编辑它搜索的内容(所有这些 ^),现在它没有改变。

最佳答案

像这样修改你的代码

public class ProductSearchEntry extends Activity{ 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.productsearchentry); 
    EditText etSearch = (EditText) findViewById(id of your edittext);
    Button search = (Button) findViewById(R.id.searchButton); 

    search.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
            //while calling intent 

            Intent searchIntent = new Intent(getApplicationContext(), ProductSearch.class); 
            searchIntent.putExtra("searchText",etSearch.getText().toString());
            startActivity(searchIntent); 
        } 
    }); 
    } 
} 

和另一个类似的 Activity ,

public class ProductSearch extends Activity{     
protected void onCreate(Bundle savedInstanceState){     
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.productsearchresults);     
        String searchQuery = getIntent().getStringExtra("searchText");     
        ProductSearchMethod test = new ProductSearchMethod();     
        String entry;     
        TextView httpStuff = (TextView) findViewById(R.id.httpTextView);     
        try {     
            entry = test.getSearchData(searchQuery);     
            httpStuff.setText(entry);     
              } catch (Exception e) {     
                        e.printStackTrace();     
    }     
}     
}   

关于java - 有什么方法可以根据用户输入编辑 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060582/

相关文章:

java - 怎么听EditText?

java - OnClickListener 在 startActivity 上抛出 NullPointerException

Java 没有给出错误!

Android 应用程序在模拟器上崩溃,但 Android Studio 没有出现任何问题

java - 使用循环引用不同的editText ID

android - requestFocus 跳过下一个 EditText

java - JAXB Java EE 从 Schema 生成实体类

java - LibGdx 如何编程 HP Bar?

android - 找不到参数[com.google.firebase:firebase-database:11.0.4]的方法Implementation()

java - 获取查询字符串值 JAVA