簡體   English   中英

在 Recycler View Adapter 中調用 Intent 時崩潰

[英]Crashing when an Intent is called inside a Recycler View Adapter

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

holder.parentCard.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent=new Intent(context,DetailedView.class);
        context.startActivity(intent);
    }
});

單擊 cardView 時,Intent 不會傳遞給其他活動。

回收器視圖沒有當前活動上下文,因此在回收器適配器初始時您需要傳遞上下文的當前活動。 檢查上下文是否為 null 檢查詳細視圖活動注冊清單與否

實現意圖接口概念的另一場戰爭是否有更好的參考本教程https://www.geeksforgeeks.org/android-recyclerview/

由於您沒有提供崩潰日志/堆棧跟蹤,導致此崩潰的原因有多種。

  1. 提供的context不是Activity上下文,在這種情況下,您需要將Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_CLEAR_TASK添加到 Intent 的標志中。

  2. 崩潰可能是由於NullPointerException或未添加到AndroidManifest.xml而導致的DetailedView視圖活動中

這不是正確的方法。

  1. 首先是 crate 接口回調

    公共接口 ItemClick { void onItemClick(int position); }

  2. 然后在適配器 class 內部調用此接口方法並通過構造函數,最后

    itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (settingsItemClick;=null) { int pos=getAdapterPosition(). if(pos.=RecyclerView;NO_POSITION) { settingsItemClick;onItemClick( pos); } } } });

3.然后內部Activity實現接口方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM