Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在回收器视图中添加和显示数据_Java_Android_Android Recyclerview_Cardview - Fatal编程技术网

Java 在回收器视图中添加和显示数据

Java 在回收器视图中添加和显示数据,java,android,android-recyclerview,cardview,Java,Android,Android Recyclerview,Cardview,我有个问题,所以我有个问题 在扫描活动中,二维码被扫描并生成卡片数据,然后当值匹配时,我们进入下一个活动,在那里我们会看到下一个值。单击“下一步”按钮并转到我们的数据列表。询问如何从ScanActivity.class活动卡获取数据并添加列表 ScanActivity.java中的一段代码 if (!p.matcher(decodedBarcodeValue).matches()) { showAlterDialog("Błędny QR

我有个问题,所以我有个问题

在扫描活动中,二维码被扫描并生成卡片数据,然后当值匹配时,我们进入下一个活动,在那里我们会看到下一个值。单击“下一步”按钮并转到我们的数据列表。询问如何从ScanActivity.class活动卡获取数据并添加列表

ScanActivity.java中的一段代码

if (!p.matcher(decodedBarcodeValue).matches()) {
                            showAlterDialog("Błędny QR Kod", "Podany kod QR code jest błędny. Zeskanuj go ponownie.");

                        } else {

                            Matcher m = p.matcher(decodedBarcodeValue);

                            while (m.find()) {
                                daneKarty[index] = m.group(1);
                                index++;
                            }

                            if (daneKarty.length < 6) {
                                showAlterDialog("Błędny  QR Kod", "Podany Kod jest nieprawidłowy");
                            }

                            sciezka3 = daneKarty[0];
                            base32 = daneKarty[1];
                            nameCard = daneKarty[2];
                            intervalTotp = daneKarty[3];
                            passwordHotp = daneKarty[4];
                            expirationDate = daneKarty[5];

                            if (intervalTotp.equals("")) {
                                intervalTotp = "60";

                            }

                            try {
                                OTP = generateOTP(base32, uuidDevice);
                            } catch (UnsupportedEncodingException e) {
                                e.printStackTrace();
                            }
                            Base32 code = new Base32();
                            byte secret[] = code.decode(OTP);

                            try {
                                hotpValue = Hotp.generateHotp(secret, hotp_counter, 6);
                            } catch (NoSuchAlgorithmException e) {
                                e.printStackTrace();
                            } catch (InvalidKeyException e) {
                                e.printStackTrace();
                            }

                            if (hotpValue.equals(passwordHotp)) {
                                Intent intent = new Intent(ScanQrCodeActivity.this, Stage3Activity.class);
                                intent.putExtra(EXTRA_MESSAGE, hotpValue);
                                startActivityForResult(intent, REQUEST_CODE);
                            } else {
                                showAlterDialog("Błędny  QR Kod", "Podany Kod jest nieprawidłowy");
                            }
主课

public class MainActivity extends AppCompatActivity {


    public List<Card> cardList = new ArrayList<>();

    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(newBase);
    }

    private RecyclerView cardRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        Typeface custom_fonts = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-Regular.ttf");

        cardRecyclerView = (RecyclerView) findViewById(R.id.cardViewRecycleView);

        mLayoutManager = new LinearLayoutManager(this);
        cardRecyclerView.setLayoutManager(mLayoutManager);

        // title application
        TextView title_app = (TextView) findViewById(R.id.toolbar_title);
        title_app.setTypeface(custom_fonts);

    }
CardAdapter.class

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder> {

    private List<Card> cardsList = new ArrayList<>();
    private Card card;

    public CardAdapter( List<Card> cardsList) {
        this.cardsList = cardsList;
    }

    //dodaj obiekt do listy
    private void addItem(int position, Card card) {
        cardsList.add(position, card);
        notifyItemChanged(position);
    }


    public class CardViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public CardView cardview;
        public TextView nameCard, dateText, setDateText, dateExpirationText, setDateExpirationText;
        public ImageView mImageButton;
        Typeface custom_fonts = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/OpenSans-Regular.ttf");


        public CardViewHolder(View itemView) {
            super(itemView);
            //  name Card
            nameCard = (TextView) itemView.findViewById(R.id.nameCard);
            nameCard.setTypeface(custom_fonts);

            //data add Card
            setDateText = (TextView) itemView.findViewById(R.id.setDateText);
            setDateText.setTypeface(custom_fonts);

            dateText = (TextView) itemView.findViewById(R.id.dateText);
            dateText.setTypeface(custom_fonts);

            mImageButton = (ImageView) itemView.findViewById(R.id.garbageDelete);

            //data expiration date
            dateExpirationText = (TextView) itemView.findViewById(R.id.dateExpiration);
            dateExpirationText.setTypeface(custom_fonts);

            //
            setDateExpirationText = (TextView) itemView.findViewById(R.id.setDateExpirationText);
            setDateExpirationText.setTypeface(custom_fonts);

            cardview = (CardView) itemView.findViewById(R.id.cardView);
            cardview.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {
            Context context = itemView.getContext();
            Intent intent = new Intent(context, CardDetailsActivity.class);
            context.startActivity(intent);
        }
    }

    @Override
    public CardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View itemView = LayoutInflater.
                from(parent.getContext()).
                inflate(R.layout.item_cardview, parent, false);

        return new CardViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(final CardViewHolder holder, final int position) {
        Card Card = cardsList.get(position);
        holder.nameCard.setText(Card.getNameCard());
        holder.dateText.setText(R.string.data_dodania);
        holder.setDateText.setText(Card.getDateCard());
        holder.mImageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showPopupMenu(holder.mImageButton, position);
            }
        });

    }
公共类CardAdapter扩展了RecyclerView.Adapter{ private List cardsList=new ArrayList(); 私人卡; 公共卡适配器(列表卡列表){ this.cardsList=cardsList; } //多达吉·奥比克特精神萎靡 专用无效附加项(内部位置,卡片){ 卡片列表。添加(位置、卡片); (职位)变更; } 公共类CardViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{ 公共卡视图卡视图; 公共文本查看名片、日期文本、setDateText、dateExpirationText、setDateExpirationText; 公共图像查看mImageButton; Typeface custom_fonts=Typeface.createFromAsset(itemView.getContext().getAssets(),“fonts/OpenSans Regular.ttf”); 公共名片夹(查看项目视图){ 超级(项目视图); //名片 nameCard=(TextView)itemView.findViewById(R.id.nameCard); 设置字体(自定义字体); //数据添加卡 setDateText=(TextView)itemView.findViewById(R.id.setDateText); setDateText.setTypeface(自定义字体); dateText=(TextView)itemView.findViewById(R.id.dateText); dateText.setTypeface(自定义字体); mImageButton=(ImageView)itemView.findViewById(R.id.garbageDelete); //数据过期日期 dateExpirationText=(TextView)itemView.findViewById(R.id.dateExpiration); dateExpirationText.setTypeface(自定义字体); // setDateExpirationText=(TextView)itemView.findViewById(R.id.setDateExpirationText); setDateExpirationText.setTypeface(自定义字体); cardview=(cardview)itemView.findViewById(R.id.cardview); setOnClickListener(这个); } @凌驾 公共void onClick(视图v){ Context=itemView.getContext(); 意向意向=新意向(上下文、CardDetailsActivity.class); 背景。开始触觉(意图); } } @凌驾 公共卡ViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图项视图=布局调整器。 来自(parent.getContext())。 充气(R.layout.item_cardview,父项,假); 返回新的CardViewHolder(itemView); } @凌驾 BindViewHolder上的公共无效(最终CardViewHolder,最终int位置){ 卡片=卡片列表获取(位置); holder.nameCard.setText(Card.getNameCard()); holder.dateText.setText(R.string.data_dodania); holder.setDateText.setText(Card.getDateCard()); holder.mImageButton.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ showPopupMenu(holder.mImageButton,位置); } }); }
如果我理解正确,并且您只需要在
活动之间传递数据
,就可以使用
捆绑包
完成

在这里,您回答了相同的问题:


有关更复杂的数据,请查看此处:

在类ScanActivity.class上拉出卡数据名片、过期日期、保存任务列表和显示列表您必须在
开始活动之前将卡数据添加到
意图
捆绑包
。阅读链接,我不是为您这样做的。将位置作为调用活动并在setResult返回时,使用该位置通知适配器
public class Card {

    private String nameCard;
    private String dateCard;
    private String dateExpiration;

    public Card(String nameCard, String dateCard, String dateExpiration) {
        this.nameCard = nameCard;
        this.dateCard = dateCard;
        this.dateExpiration = dateExpiration;
    }

    public String getNameCard() {
        return nameCard;
    }

    public void setNameCard(String nameCard) {
        this.nameCard = nameCard;
    }

    public String getDateCard() {
        return dateCard;
    }

    public void setDateCard(String dateCard) {
        this.dateCard = dateCard;
    }

    public String getDateExpiration() {
        return dateExpiration;
    }

    public void setDateExpiration(String dateExpiration) {
        this.dateExpiration = dateExpiration;
    }
}
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder> {

    private List<Card> cardsList = new ArrayList<>();
    private Card card;

    public CardAdapter( List<Card> cardsList) {
        this.cardsList = cardsList;
    }

    //dodaj obiekt do listy
    private void addItem(int position, Card card) {
        cardsList.add(position, card);
        notifyItemChanged(position);
    }


    public class CardViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public CardView cardview;
        public TextView nameCard, dateText, setDateText, dateExpirationText, setDateExpirationText;
        public ImageView mImageButton;
        Typeface custom_fonts = Typeface.createFromAsset(itemView.getContext().getAssets(), "fonts/OpenSans-Regular.ttf");


        public CardViewHolder(View itemView) {
            super(itemView);
            //  name Card
            nameCard = (TextView) itemView.findViewById(R.id.nameCard);
            nameCard.setTypeface(custom_fonts);

            //data add Card
            setDateText = (TextView) itemView.findViewById(R.id.setDateText);
            setDateText.setTypeface(custom_fonts);

            dateText = (TextView) itemView.findViewById(R.id.dateText);
            dateText.setTypeface(custom_fonts);

            mImageButton = (ImageView) itemView.findViewById(R.id.garbageDelete);

            //data expiration date
            dateExpirationText = (TextView) itemView.findViewById(R.id.dateExpiration);
            dateExpirationText.setTypeface(custom_fonts);

            //
            setDateExpirationText = (TextView) itemView.findViewById(R.id.setDateExpirationText);
            setDateExpirationText.setTypeface(custom_fonts);

            cardview = (CardView) itemView.findViewById(R.id.cardView);
            cardview.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {
            Context context = itemView.getContext();
            Intent intent = new Intent(context, CardDetailsActivity.class);
            context.startActivity(intent);
        }
    }

    @Override
    public CardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View itemView = LayoutInflater.
                from(parent.getContext()).
                inflate(R.layout.item_cardview, parent, false);

        return new CardViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(final CardViewHolder holder, final int position) {
        Card Card = cardsList.get(position);
        holder.nameCard.setText(Card.getNameCard());
        holder.dateText.setText(R.string.data_dodania);
        holder.setDateText.setText(Card.getDateCard());
        holder.mImageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showPopupMenu(holder.mImageButton, position);
            }
        });

    }