【问题标题】:How to setOnclickListner for the intent如何为 Intent 设置 OnclickListener
【发布时间】:2020-10-14 15:00:59
【问题描述】:

我想先在 myclass 中加载 url (google.com)。单击任何其他链接时,它应该在 web_view.class 中打开。 如何正确设置 onclickListener 以传递意图?我是安卓新手。我将非常感谢您的帮助。这是 myclass.java 代码。

public class myclass extends AppCompatActivity {
    private WebView webView;
    private ProgressBar progressBar;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        getSupportActionBar().hide();
        webView = findViewById(R.id.webh);
        progressBar = findViewById(R.id.progressBar);
        CookieSyncManager.createInstance(this);
        CookieManager.getInstance().setAcceptCookie(true);
        this.webView.getSettings().setJavaScriptEnabled(true);
        this.webView.setScrollbarFadingEnabled(false);
       webView.setWebViewClient(new WebViewClient());
       webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                progressBar.setProgress(newProgress);
                if (newProgress==100) {
                    progressBar.setVisibility(View.GONE);
                }
            }
        });
        this.webView.loadUrl("https://google.com");

        Intent intent = new Intent(this, web_view.class);
        String mUrl= "https:google.com";
        intent.setData(Uri.parse(mUrl));
        startActivity(intent);
    }
} 

【问题讨论】:

  • 你想点击什么?除了 WebView 和 ProgressBar,我没有看到任何其他视图。
  • 首先我想在 myclass 中使用 webview 加载 url。当点击它的任何链接时,它应该在 web_view 类中打开。例如,我想加载第一个 www.ebay.com(在 myclass 中)。而且,当点击 ebay.com 的任何产品时,我的 web_view 活动应该会打开。

标签: java android android-intent onclicklistener


【解决方案1】:

您需要覆盖WebViewClient。

webView.setWebViewClient(new WebViewClient() {
    public boolean shouldOverrideUrlLoading (WebView view, 
                WebResourceRequest request) {
        Intent intent = new Intent(myclass.this, web_view.class);
        intent.setData(request.getUrl());
        startActivity(intent);
        return true;
    }
}

【讨论】:

  • 得到一个错误意图 = new Intent(this, web_view.class); ^ 构造函数 Intent.Intent(String,Uri) 不适用(参数不匹配; 无法转换为 String)构造函数 Intent.Intent(Context,Class>) 不适用(参数不匹配;无法转换为上下文)
  • 对不起,我错过了一些东西。我更新了代码。您需要在匿名内部类中引用myclass.this。
猜你喜欢
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多