gpt4 book ai didi

android - webview javascript接口(interface)更新Autocompletetextview

转载 作者:行者123 更新时间:2023-11-30 01:31:07 25 4
gpt4 key购买 nike

我是 Android 的初学者,也是 Stackoverflow 的新手。所以请原谅我的愚蠢问题。但是我在这里找不到解决方案,因此将其作为一个新问题发布。

我有一个带有自动完成 TextView 和 WebView 的 Activity 。我想单击 webview 中的超链接以在 Autocompletetextview 中填充一些文本。所以我在网页中调用了 Javascript,该网页又调用了 Javascript AppInterface。在接口(interface)函数中,我想更新Autocompletetextview文本。

我能够从 javascript 收集文本。但是在设置 Autocompletetextview 的文本时,我的应用程序崩溃了。

WebAppInterface.java

public class JsInterface {
@JavascriptInterface
public void NewText(final String text)
{
Log.d("New_Text", "" + text); //Works fine till here.
((Activity)mContext).findViewById(R.id.autoCompleteTextView);
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
@Override
public void run() {
AutoCompleteTextView SearchTextbox = (AutoCompleteTextView) ((Activity)mContext).findViewById(R.id.autoCompleteTextView);
SearchTextbox.setText(text);
}
});
}
}

应用崩溃错误

E/AndroidRuntime: FATAL EXCEPTION: JavaBridge
Process: com.test.xxx, PID: 22102
java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
at com.test.xxx.WebAppInterface$1.run(WebAppInterface.java:102)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)

我想知道我更新 UI 组件的方法是否正确?如果是,哪些更改将解决错误并正常工作。

最佳答案

线

java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity

是不言自明的。您正在将 mContext 转换为 Activity 而它不是 Activity 类的实例。

您可以将名为 setAutoCompleteTextView 的方法添加到您的 JsInterface 类中,您可以在其中保存对该自动完成 TextView 的引用。

public void setAutoCompleteTextView(AutoCompleteTextView textview){
this.mTextView = textview;
}

并且在JavaScript接口(interface)方法中,像this.mTextView.set...()一样使用它。

关于android - webview javascript接口(interface)更新Autocompletetextview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35753301/

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