Java 如何在WebView Android中搜索文本?
我有一个使用网络视图的应用程序(MinsdkVersion17)。如果可以添加搜索(并突出显示找到的结果)功能,这将非常有用。问题是,我的编程技能非常低,对圣杯的搜索没有得到好的答案 我发现了以下主题(以及一些moe,包括其他论坛): , , 还有一些其他的,但所有的都是不完整的,我无法理解它们是如何工作的,或者发现的代码太旧了,可能有一些错误需要修复(我想是由于android studio的变化),我可以从中得到一些有用的东西 活动中的我的XML:Java 如何在WebView Android中搜索文本?,java,android,search,webview,searchview,Java,Android,Search,Webview,Searchview,我有一个使用网络视图的应用程序(MinsdkVersion17)。如果可以添加搜索(并突出显示找到的结果)功能,这将非常有用。问题是,我的编程技能非常低,对圣杯的搜索没有得到好的答案 我发现了以下主题(以及一些moe,包括其他论坛): , , 还有一些其他的,但所有的都是不完整的,我无法理解它们是如何工作的,或者发现的代码太旧了,可能有一些错误需要修复(我想是由于android studio的变化),我可以从中得到一些有用的东西 活动中的我的XML: <ScrollView
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/footer"
android:layout_below="@+id/layoutId">
<WebView
android:id="@+id/webviewautoturisme"
android:layout_width="match_parent"
android:layout_height="match_parent"></WebView>
</ScrollView>
<RelativeLayout
android:id="@+id/layoutId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<Button
android:id="@+id/nextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="Caută"
android:textColor="#ffffff"
android:textStyle="bold" />
<EditText
android:id="@+id/findBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@+id/nextButton"
android:hint="Caută după localitate"
android:maxLines="1" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/footer"
android:layout_width="wrap_content"
android:layout_height="95dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<Button
android:id="@+id/buttoBACK"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/adView"
android:layout_centerHorizontal="true"
android:minWidth="150dp"
android:text="@string/sBackMainMenu"
android:textAllCaps="true"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
问题是我不知道如何使用搜索按钮,因为我以前找到的解决方案已经过时了。
如何使搜索按钮工作?请停止并回答此问题。简单地用您拥有的任何新信息、您尝试过的任何新代码编辑您的原始帖子,或者解释任何帖子答案不起作用的原因,都会将其推到活动队列的顶部。
<SearchView
android:id="@+id/searchField"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:queryHint="Căutare după localitate"
android:orientation="horizontal">
</SearchView>
package ro....;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
public class PKWinListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pkwinlist);
MobileAds.initialize(getApplicationContext(), "ca-app-pub-....");
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("....").addTestDevice("....").addTestDevice("....").build();
mAdView.loadAd(adRequest);
findViewById(R.id.buttoBACK)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
if (isMobileDataEnabled()) {
WebView myWebView = (WebView) findViewById(R.id.webviewautoturisme);
myWebView.loadUrl("https://www...");
myWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
} else {
//Mobile data is disabled here
new AlertDialog.Builder(this).setTitle(getString(R.string.sDataReqMes))
.setMessage(getString(R.string.sDataReqEnable)).setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
}).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).show();
}
}
private boolean isMobileDataEnabled() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobileDataEnabled = connectivityManager.getActiveNetworkInfo();
return mobileDataEnabled != null && mobileDataEnabled.isConnected();
}
}