有一个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
),所以
我尝试使用setClass
和setComponent
来尝试处理Intent
,但没有成功。
答案 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)
}