gpt4 book ai didi

javascript - 如何使用 Android 搜索查询(从操作栏中的搜索框)加载最后带有查询的指定 URL?

转载 作者:行者123 更新时间:2023-11-29 02:09:32 25 4
gpt4 key购买 nike

计算器溢出。我已经花了 13 个小时试图解决这个问题,我觉得自己还没有解决这个问题有点愚蠢。基本上我想要做的是从操作栏的搜索框中提取用户的搜索查询,并将该查询放在我指定的 URL 的末尾,然后将该 URL 加载到我当前的 web View 中。

例子:用户在 www.homepage.tld用户点击搜索框,输入狗。我想将他的查询 (dog) 放在 www.homepage.tld?search=(USER QUERY) 的末尾然后,我想将该 URL 加载到用户当前正在使用的同一 webview 中(基本上就像他单击链接一样)。

这是我当前的代码。它不理解 +QUERY(但我只是把它扔在那里希望它能工作:(

    public boolean onKeyEnter(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER) && SearchView.QUERY) {
webview.loadUrl("http://www.homepage.tld?s="+QUERY);
return true;
}

编辑添加:

    package com.tabletapp;

import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.SearchView;


public class ATAActivity extends Activity {
final Activity activity = this;
private WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
// Look up the AdView as a resource and load a request.
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);String newUA="Mozilla/5.0 (Linux; U; Android 3.2; en-us; 3ATApps0) Android/3.0 (KHTML, like Gecko) Android/3.0"; // Change this to desired UA
webview.getSettings().setUserAgentString(newUA);
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);

if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webview.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webview.loadUrl("http://www.homepage.tld");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the BACK key and if there's history
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
// If it wasn't the BACK key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);

// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true); // Do not iconify the widget; expand it by default
searchView.setSubmitButtonEnabled(true);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.refresh:
webview.reload ();
return true;
case R.id.home:
webview.loadUrl ("http://www.homepage.tld");
return true;
default:
return super.onOptionsItemSelected(item);
}
}

public boolean onKeyEnter(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER) && SearchView.QUERY) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("http://www.homepage.tld?s=");
stringBuilder.append(SearchView.QUERY);
String summary = "<?xml version=\"1.0\" encoding=\"utf-8\"?><html><body>"+ stringBuilder.toString() +" </body></html>";
String uri = Uri.encode(summary);
webview.loadData(uri, "text/html", "UTF-8");
return true;
}
return super.onKeyEnter(keyCode, event);
}
}

编辑添加:

        public boolean onQueryTextSubmit(String query) {
webview.loadUrl("http://www.homepage.tld?s=" + query);
return false;
}

编辑添加:

public boolean onQueryTextSubmit(String query) {
webview.loadUrl ("http://www.homepage.tld?s=" + query);
final String TAG = "MyActivity1";
Log.d(TAG, "index=" + 2);
return false;
}}

**此 log_tag 从不触发。前两个(0 和 1)在应用加载时触发。

最佳答案

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
// Do something
return true;
}

@Override
public boolean onQueryTextSubmit(String query) {
// You can use the webview here.
return true;
}
};

searchView.setOnQueryTextListener(queryTextListener);

关于javascript - 如何使用 Android 搜索查询(从操作栏中的搜索框)加载最后带有查询的指定 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8301815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com