java - 如何从 recyclerview onclick 打开新的 Intent

标签 java android kotlin

我仍然是 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/

相关文章:

java - microsoft azure 中 StorageAccounts 的模型对象

android - 按钮单击监听器在 RxAndroid onError 后停止工作

android - 如何从 fragment 中拦截 MainActivity 的 BottomNavigationView 菜单点击

java - 如何通过一个按钮点击另一个按钮而不显示它?

Android OnTouchListener 导致拖拽不稳

kotlin - 将数据类型作为参数传递给函数

javascript - 每个方法都需要 @JsName 注释吗?

java - 触发 spring-integration int-mail :inbound-channel-adapter? 的适当方法是什么

java - Eclipse、Javamail、Tomcat 和套接字无法访问/网络无法访问?

java - 在 Android 上合并两个 WAVE 文件(连接)