我仍然是 Android 开发的初学者,我在点击我的 recylerview 项目后设置了一些新 View ,但我的应用程序在 kotlin 和 android 之间混合,因为我从互联网上获得了一些源代码,但我的项目从一开始就是由 kotlin 编译。
// Set New View Adapter
// Based on Java
holder.itemImageView.setOnClickListener(new CustomOnItemClickListener(position, new CustomOnItemClickListener.OnItemClickCallback() {
@Override
public void onItemClicked(View view, int position) {
if(holder.itemNameTextView.getText().equals("Pemerintahan (OPD)")){
//open new intent
else if(holder.itemNameTextView.getText().equals("Pelayanan Publik")){
//open new intent
}
我引用的示例代码是使用 kotlin show new activity started like this
// Referenced Code
// Based on Kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
creativeViewPagerView.setCreativeViewPagerAdapter(NatureCreativePagerAdapter(this))
}
}
注释: createViewPagerView = 是 xml Activity main 上的属性值 NatureCreativePagerAdapter = 是我将使用的适配器
setCreativeViewPagerAdapter = 类中的函数,代码如下
// setCreativeViewPagerAdapter\
// Based on Kotlin
fun setCreativeViewPagerAdapter(creativePagerAdapter: CreativePagerAdapter) {
post({
this.creativePagerAdapter = creativePagerAdapter
// Setup adapter for palette manager
paletteCacheManager.setCreativeViewAdapter(creativePagerAdapter)
paletteCacheManager.cachePalettesAroundPositionAsync(0, {
refreshBackgroundColor(0, 0f)
})
// Setup image adapter
creativeImageAdapter.creativePagerAdapter = creativePagerAdapter
creativeHeaderRecycler.layoutManager = LinearLayoutManager(context,
LinearLayoutManager.HORIZONTAL, false)
creativeHeaderRecycler.adapter = creativeImageAdapter
// Setup content adapter
creativeContentAdapter.creativePagerAdapter = creativePagerAdapter
creativeContentViewPager.adapter = creativeContentAdapter
creativeHeaderRecycler.post({ refreshImagesPosition(0f, 0) })
})
}
我的问题是如何让引用的示例代码在我的//Set New View 适配器上工作 非常感谢。
最佳答案
要创建一个新的Intent
,您只需要一个Context
的实例。您可以从 View
的任何实例中获取它(您在 onItemClicked
方法中拥有它):
Context context = view.getContext();
现在要创建并启动Intent
,您可以编写如下代码:
Intent intent = new Intent(context, ActivityYouNeedToStart.class);
context.startActivity(intent);
所以,最终代码是:
@Override
public void onItemClicked(View view, int position) {
Context context = view.getContext();
Intent intent = new Intent(context, ActivityYouNeedToStart.class);
context.startActivity(intent);
}
关于java - 如何从 recyclerview onclick 打开新的 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55458989/