Java setTag()getTag()整数问题
当getTag用于字符串时,没有错误,运行平稳,但如果用于int,我的应用程序会崩溃。当启动onclick时会发生这种情况。我想通过setTag获取id。请参阅下面的代码 八哥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(
@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返回此视图中存储为标记的对象请将您自己的答案设置为正确答案,然后重试。