我正在尝试在Fragment下创建具有Intent的setOnClickListener,但是当我尝试使用以下方法实例化Intent对象时,出现以下错误:
US.setOnClickListener {
var intent = Intent(this, US_Fragment::class.java)
startActivity(intent)
}
错误消息:使用提供的参数不能调用以下任何函数。(Context !, Class !)在android.content.Intent中定义(String !, Uri!)在android.content.Intent
中定义当我单击android:id =“ @ + id / US”时,我希望NewsFragment.kt跳到US_Fragment.kt。
非常感谢。
NewsFragment.kt
import kotlinx.android.synthetic.main.fragment_news.*
class NewsFragment : Fragment() {
private var param1: String? = null
private var param2: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
US.setOnClickListener {
var intent = Intent(this, US_Fragment::class.java)
startActivity(intent)
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
///val view = inflater.inflate(R.layout.fragment_news, container, false)
///view.recyclerView_news.layoutManager = LinearLayoutManager(activity)
///view.recyclerView_news.adapter = MainAdapter()
///return view
}
companion object {
@JvmStatic
fun newInstance(param1: String, param2: String) =
NewsFragment().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
}
fragment_news.kt
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="view.NewsFragment">
<!-- TODO: Update blank fragment layout -->
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/US"
android:layout_width="match_parent"
android:layout_height="269dp"
android:text="North Americas"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/EMEA"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/EMEA"
android:layout_width="match_parent"
android:layout_height="269dp"
android:text="EMEA"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/US" />
<Button
android:id="@+id/ASIA"
android:layout_width="match_parent"
android:layout_height="269dp"
android:text="ASIA"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/EMEA" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
US.setOnClickListener {
var intent = Intent(this, US_Fragment::class.java)
startActivity(intent)
}
带有以下代码:
US.setOnClickListener { var intent = Intent(requireContext(), US_Fragment::class.java) startActivity(intent) }
US.setOnClickListener {
var intent = Intent(applicationContext, US_Fragment::class.java)
startActivity(intent)
}