简体   繁体   English

将 android java webview 项目转换为 Z4FBA3BC02B72EE9A687A1E5286E373

[英]coverting android java webview project to kotlin

Hello to all kind people你好所有善良的人

I have a Java webview project, and after I converted it to kotlin using " Control + Alt + Shift + K " Keys, I have got error on a variable that named " mWebView " here is MainActivity.jave file codes:我有一个 Java webview 项目,在我使用“Control + Alt + Shift + K”代码将其转换为 kotlin 后,我在 MainActivity 这个名为 mWebView 的文件中出现错误:

public class MainActivity extends Activity {

    private WebView mWebView;

    @Override
    @SuppressLint("SetJavaScriptEnabled")
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWebView = findViewById(R.id.activity_main_webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new MyWebViewClient());

        // REMOTE RESOURCE
         mWebView.loadUrl("https://fa.azdamghest.com/test-canvas/");

        // LOCAL RESOURCE
        // mWebView.loadUrl("file:///android_asset/index.html");
    }

    @Override
    public void onBackPressed() {
        if(mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

And Here is Converted MainActivity to Kotlin:这里是将 MainActivity 转换为 Kotlin:

class MainActivity : Activity() {
    private var mWebView: WebView? = null

    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        mWebView = findViewById(R.id.activity_main_webview)
        val webSettings = mWebView.getSettings()
        webSettings.javaScriptEnabled = true
        mWebView.setWebViewClient(MyWebViewClient())

        // REMOTE RESOURCE
        mWebView.loadUrl("https://fa.azdamghest.com/test-canvas/")

        // LOCAL RESOURCE
        // mWebView.loadUrl("file:///android_asset/index.html");
    }

    override fun onBackPressed() {
        if (mWebView!!.canGoBack()) {
            mWebView!!.goBack()
        } else {
            super.onBackPressed()
        }
    }
}

You can see mWebView showing in Red Color您可以看到 mWebView 以红色显示

Thanks a Lot From Now从现在开始非常感谢

Since mWebView is nullable, you should use safe call operator ( ?. ) wherever using it.由于mWebView可以为空,因此无论在何处使用,都应使用安全调用运算符 ( ?. )。 So, instead of mWebView.getSettings() , you should use mWebView?.getSettings() .因此,您应该使用mWebView?.getSettings() mWebView.getSettings()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM