Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 setTag()getTag()整数问题_Java_Android_Adapter - Fatal编程技术网

Java setTag()getTag()整数问题

Java setTag()getTag()整数问题,java,android,adapter,Java,Android,Adapter,当getTag用于字符串时,没有错误,运行平稳,但如果用于int,我的应用程序会崩溃。当启动onclick时会发生这种情况。我想通过setTag获取id。请参阅下面的代码 八哥 @Override public void onBindViewHolder(MyViewHolder holder, int position) { Contact current = data.get(position); holder.itemId.setText(

当getTag用于字符串时,没有错误,运行平稳,但如果用于int,我的应用程序会崩溃。当启动onclick时会发生这种情况。我想通过setTag获取id。请参阅下面的代码

八哥

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {

        Contact current = data.get(position);
        holder.itemId.setText(String.valueOf(current.getId()));
        holder.title.setText(current.getName());
        holder.email.setText(current.getEmail());
        holder.itemId.setTag(holder);
        holder.title.setTag(holder);
        holder.email.setTag(holder);

    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView title;
        public TextView email;
        public TextView itemId;


        public MyViewHolder(View itemView) {
            super(itemView);
            title = (TextView) itemView.findViewById(R.id.listTextName);
            email = (TextView) itemView.findViewById(R.id.listTextUname);
            itemId = (TextView) itemView.findViewById(R.id.listTextId);
            title.setOnClickListener(this);
            email.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {

            MyViewHolder holder = (MyViewHolder) v.getTag();
            int position = holder.getAdapterPosition();

            Contact contact = data.get(position);
            Toast.makeText(context, contact.getId(), Toast.LENGTH_SHORT).show();

        }

    }

}

对不起。我在打电话之前忘了把它转换成字符串

String new = String.valueOf(contact.getId()); 

解决了

如果您想通过getTag方法获得它。

class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView title;
        public TextView email;
        public TextView itemId;


        public MyViewHolder(View itemView) {
            super(itemView);
            title = (TextView) itemView.findViewById(R.id.listTextName);
            email = (TextView) itemView.findViewById(R.id.listTextUname);
            itemId = (TextView) itemView.findViewById(R.id.listTextId);
            itemView.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {

         Contact rowContactClicked = (Contact) v.getTag();
            Toast.makeText(context, Integer.toString(rowContactClicked.getId()),Toast.LENGTH_SHORT).show();

        }

    }

您应该记住getTag返回此视图中存储为标记的对象

请将您自己的答案设置为正确答案,然后重试。