如何使用按钮从Fragment重定向到URL

时间:2019-01-20 21:35:36

标签: android android-fragments kotlin

有一个similar question用于重定向活动,

但是我找不到从Fragment开始的方法。

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

        ...

        view.myButton.setOnClickListener {
            val urlIntent = Intent("android.intent.action.VIEW", Uri.parse(WEBSITE_URL))

            startActivity(urlIntent)
        }

        return view
    }

上面的代码产生异常:

  

android.content.ActivityNotFoundException:未找到任何处理意图的活动{act = android.intent.action.VIEW dat =“ https://www.google.com/”}

我有 Main Activity 实例(如MainActivity.instance),所以 我尝试使用setClasssetComponent来尝试处理Intent,但没有成功。

2 个答案:

答案 0 :(得分:1)

尝试这个:

String url = "https://www.google.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url)); 
startActivity(i); 

答案 1 :(得分:1)

这是可行的,其中MainActivity.instance是片段的主机实例。 使用requireActivity()等获取主机。

    view.myButton.setOnClickListener {
        val urlIntent = Intent(Intent.ACTION_VIEW)
        urlIntent.data = Uri.parse(WEBSITE_URL)
        MainActivity.instance.startActivity(urlIntent)
    }