[英]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/
由於您沒有提供崩潰日志/堆棧跟蹤,導致此崩潰的原因有多種。
提供的context
不是Activity
上下文,在這種情況下,您需要將Intent.FLAG_ACTIVITY_NEW_TASK
或Intent.FLAG_ACTIVITY_CLEAR_TASK
添加到 Intent 的標志中。
崩潰可能是由於NullPointerException
或未添加到AndroidManifest.xml
而導致的DetailedView
視圖活動中
這不是正確的方法。
首先是 crate 接口回調
公共接口 ItemClick { void onItemClick(int position); }
然后在適配器 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.