【发布时间】:2018-10-15 03:58:58
【问题描述】:
我是新的 android 开发人员,我正在使用 minSdkVersion 22 在 SDK 28 中构建应用程序。
使用来自另一个应用程序的代码片段我现在收到警告消息: 'android.content.intent' 已弃用。
我发现了一些关于 getIntent() 用法的线程,但我在 RecyclerViewAdapter 中创建了一个新的意图来打开一个新的 Activity。
您可以在下面查看我的代码或屏幕截图:
package com.example.chris.projectartifact.bb_Items;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.chris.projectartifact.R;
import java.util.List;
public class ItemRViewAdapter extends RecyclerView.Adapter<ItemRViewAdapter.MyViewHolder> {
private Context mContext;
private List<Items> mData;
public ItemRViewAdapter(Context mContext, List<Items> mData) {
this.mContext = mContext;
this.mData = mData;
}
@Override
public ItemRViewAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
LayoutInflater mInflater = LayoutInflater.from(mContext); //TODO what does that?
view = mInflater.inflate(R.layout.layout_cardview_cards,parent,false);
return new ItemRViewAdapter.MyViewHolder(view);
}
public void onBindViewHolder(ItemRViewAdapter.MyViewHolder holder, final int position) {
holder.ivSpell_img.setImageResource(mData.get(position).getItemImage());
holder.tvSpell_title.setText(mData.get(position).getItemTitle());
holder.cardView_spells_id.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// This is where my problem is..!
Intent intent = new Intent(mContext, itemClickable.class);
intent.putExtra("itemName", mData.get(position).getItemTitle());
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mData.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
TextView tvSpell_title;
CardView cardView_spells_id;
ImageView ivSpell_img;
public MyViewHolder(View itemView) {
super(itemView);
tvSpell_title = itemView.findViewById(R.id.tvSpell_title);
ivSpell_img = itemView.findViewById(R.id.ivSpell_img);
cardView_spells_id = itemView.findViewById(R.id.cardView_spells_id);
}
}
}
也许你可以帮我解决这个问题!
编辑新的屏幕截图,我修复了 itemClickable 无法识别的问题。
谢谢! CG
【问题讨论】:
-
在文档中,我找不到任何地方说意图已弃用
-
嘿@VivekMishra。感谢您检查文档。你知道这可能是从哪里来的吗?我将这个类从一个 sdk 26 程序复制到一个 sdk 28 程序中。这会造成问题吗?
-
可能是因为找不到itemClickable.class
-
也检查你的导入。
-
不,不是因为itemClickable。显然改变了这一点。导入 com.example.chris.projectartifact.R;导入android.content.Context;导入android.content.Intent;导入android.support.v7.widget.CardView;导入 android.support.v7.widget.RecyclerView;导入 android.view.LayoutInflater;导入android.view.View;导入android.view.ViewGroup;导入android.widget.ImageView;导入 android.widget.TextView;导入 java.util.List;那是我的进口。不过,我不知道如何正确编辑它们:s
标签: android android-intent sectionedrecyclerviewadapter