意向贬值,有什么选择?

时间:2018-10-15 03:58:59

标签: android android-intent sectionedrecyclerviewadapter

我是一名新的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);
        }
    }

}

截屏: intent is strikethrough

也许您可以帮助我!

编辑新的屏幕快照,其中修复了itemClickable无法识别的问题。 Fixed itemClickable.class

谢谢! CG

1 个答案:

答案 0 :(得分:0)

Intent未被淘汰,问题出在您的itemClickable.class上,因为无法识别。

您要么以某种方式启用了额外的警告,这些警告将Intent标识为已弃用,或者您的计算机上确实堆积了某些东西。

enter image description here